是否可以在" react-native-navigation"纳维尔(Navbar)中使用" react-native-nave-popup-menu"设置三个点上下文菜单?或者,我们还有其他方法可以在iOS和Android中设置三个点上下文菜单,并使用" React-Native-Navigation" Navbar?
您可以使用showAsAction
属性控制每个按钮(在Android上)的优先级和定位。有关更多详细信息,请参见文档。
简而言
static navigatorButtons = {
rightButtons: [
{
id: 'btn1',
title: 'Menu button 1'
showAsAction: 'never'
},
{
id: 'btn2',
title: 'Menu button 2'
showAsAction: 'never'
},
{
id: 'btn3',
title: 'Regular Button'
icon: require('./img/button.jpeg'),
showAsAction: 'always'
}
]
);
这在iOS上不可用,因为在iOS上通常使用动作表代替菜单。
我也一直在想这一点,并找到了一个解决方案:通常,所有菜单零件必须在Menu
标签内部,因此也是MenuTrigger
。您可以为MenuTrigger
设计样式,但我没有将其放入顶部。
好消息:比这更容易,只需将整个Menu
放入您的navigationOptions
中:
static navigationOptions = ({navigation}) => ({
title: 'Uploaded Videos',
drawerLockMode: 'locked-closed',
headerRight:
<Menu renderer={SlideInMenu} style={{ zIndex: 10 }}>
<MenuTrigger text="open menu"/>
<MenuOptions style={{ flex: 1 }}>
<Text>Menu</Text>
<MenuOption onSelect={() => { console.log("clicked") text="Click me" />
</MenuOptions>
</Menu>
警告:navigationOptions
是静态的,因此在菜单中,您无法使用组件的功能。但是有一些方法,请参见一个例子,在一个反应本性的活动中。通常,您可能应该为此使用redux。
希望这仍然对您有所帮助!
我实际上使用此库制作了自己的上下文菜单:https://github.com/reaeact-native-community/reeact-native-modal
基本上,它是一种具有背景完全透明的模态。模态的内容呈现在"三个点上下文菜单" - 按钮下方。通过使用其OnbackDroppress函数,如果用户按菜单之外,您可以将上下文菜单删除。