在 React Native 中单击图标打开菜单
Open Menu on click of Icon in React Native
我无法确定在 React Native[=] 中单击 Icon 时如何显示 Menu 项31=]
代码
_onPressItem = () => {
this.setState({ opened: true });
};
render() {
return (
<View style={styles.container}>
<ListItem
title={
<View>
<Text style={{ fontWeight: "bold" }}>Mason Laon Roah</Text>
<Text>9886012345</Text>
</View>
}
subtitle={
<View>
<Text>445 Mount Eden Road, Mount Eden, Auckland. </Text>
<Text>Contact No: 134695584</Text>
</View>
}
leftAvatar={{ title: 'MD' }}
rightContentContainerStyle={{ alignSelf: 'flex-start'}}
rightTitle={<Icon type="material" color="red" name="more-vert" />}
/>
</View>
);
}
getMenuView() {
const { opened } = this.state;
return (
<MenuProvider style={{flexDirection: 'column', padding: 30}}>
<Menu
opened={opened}
onBackdropPress={() => this.onBackdropPress()}
onSelect={value => this.onOptionSelect(value)}>
<MenuTrigger onPress={() => this._onPressItem()} text="Menu Icon Here" />
<MenuOptions>
<MenuOption value={1} text='One' />
<MenuOption value={2}>
<Text style={{color: 'red'}}>Two</Text>
</MenuOption>
<MenuOption value={3} disabled={true} text='Three' />
</MenuOptions>
</Menu>
</MenuProvider>
);
}
请告诉我如何将菜单与图标集成..
基本上所有项目都显示在 FlatList 中,其中每个项目都有自己的 菜单项
只需更新以下代码:
而不是:
rightTitle={<Icon type="material" color="red" name="more-vert" />}
更新为:
rightTitle={this.getMenuView()}
因为这个方法returns视图不是弹出菜单。
而不是:
<MenuTrigger onPress={() => this._onPressItem()} text="Menu Icon Here" />
更新为:
<MenuTrigger onPress={() => this._onPressItem()}>
<Icon type="material" color="red" name="more-vert" />
</MenuTrigger>
这样它就不会打印文本,而是显示图标。
我在你给定的 link 上试过这段代码,它有效..
我无法确定在 React Native[=] 中单击 Icon 时如何显示 Menu 项31=]
代码
_onPressItem = () => {
this.setState({ opened: true });
};
render() {
return (
<View style={styles.container}>
<ListItem
title={
<View>
<Text style={{ fontWeight: "bold" }}>Mason Laon Roah</Text>
<Text>9886012345</Text>
</View>
}
subtitle={
<View>
<Text>445 Mount Eden Road, Mount Eden, Auckland. </Text>
<Text>Contact No: 134695584</Text>
</View>
}
leftAvatar={{ title: 'MD' }}
rightContentContainerStyle={{ alignSelf: 'flex-start'}}
rightTitle={<Icon type="material" color="red" name="more-vert" />}
/>
</View>
);
}
getMenuView() {
const { opened } = this.state;
return (
<MenuProvider style={{flexDirection: 'column', padding: 30}}>
<Menu
opened={opened}
onBackdropPress={() => this.onBackdropPress()}
onSelect={value => this.onOptionSelect(value)}>
<MenuTrigger onPress={() => this._onPressItem()} text="Menu Icon Here" />
<MenuOptions>
<MenuOption value={1} text='One' />
<MenuOption value={2}>
<Text style={{color: 'red'}}>Two</Text>
</MenuOption>
<MenuOption value={3} disabled={true} text='Three' />
</MenuOptions>
</Menu>
</MenuProvider>
);
}
请告诉我如何将菜单与图标集成..
基本上所有项目都显示在 FlatList 中,其中每个项目都有自己的 菜单项
只需更新以下代码:
而不是:
rightTitle={<Icon type="material" color="red" name="more-vert" />}
更新为:
rightTitle={this.getMenuView()}
因为这个方法returns视图不是弹出菜单。
而不是:
<MenuTrigger onPress={() => this._onPressItem()} text="Menu Icon Here" />
更新为:
<MenuTrigger onPress={() => this._onPressItem()}>
<Icon type="material" color="red" name="more-vert" />
</MenuTrigger>
这样它就不会打印文本,而是显示图标。
我在你给定的 link 上试过这段代码,它有效..