是否可以在 react-native-router-flux 中向 NavBar 添加自定义按钮?
Is it possible to add custom buttons to NavBar in react-native-router-flux?
我想在查看某些页面时添加一个汉堡菜单按钮,并在所有页面上显示一个右侧按钮。这可以用 react-native-router-flux 实现吗?
更新:通过使用此代码,我能够毫不费力地获得右侧按钮
<Scene key="home"
component={HomePage}
hideBackImage={true}
...
rightButtonImage={HelpIcon}
onRight={()=>{}}
rightTitle={null}
rightButtonIconStyle={{ width: 44, height: 44 }} />
事实证明,汉堡菜单按钮更加困难。导航栏上有一个 drawerImage 属性,但是没有关于如何显示该 drawerImage 以及如何设置处理函数的其他文档。
我尝试设置 rightButtonImage、onRight rightTitle 和 rightButtonIconStyle,就像设置左按钮一样,但没有出现按钮。
更新 2:由于这个问题,我降级到 react-native-router-flux v3.34.0:https://github.com/aksonov/react-native-router-flux/issues/1154
并将这些道具添加到我的场景中:
...
renderBackButton={()=>{ return null; }} /* Hide the back button...goofy mechanism but it works */
leftButtonImage={NavigationBurgerIcon}
onLeft={()=>{}}
leftTitle={null}
leftButtonIconStyle={{ width: 30, height: 30 }}
...
您可以编写自己的导航栏以实现 100% 控制。您可以从 their implementation of NavBar 构建 NavBar 组件并执行以下操作:
<Router
navBar={NavBar}
...
/>
react-native-router-flux api 对此有更多详细信息。
完成后,您可以创建自定义属性以添加到您的场景中,从而为您的项目定制各种导航栏行为,例如您希望如何与汉堡包图标进行交互。
你可以这样做。
<Router renderLeftButton={this.navBarButton}>
<Scene .....
</Router>
函数:
navBarButton(){
return(
<TouchableOpacity onPress={() => Actions.refresh({ key: 'drawer', open: true })}>
<Icon name='ios-menu' size={30} />
</TouchableOpacity>
)
}
我想在查看某些页面时添加一个汉堡菜单按钮,并在所有页面上显示一个右侧按钮。这可以用 react-native-router-flux 实现吗?
更新:通过使用此代码,我能够毫不费力地获得右侧按钮
<Scene key="home"
component={HomePage}
hideBackImage={true}
...
rightButtonImage={HelpIcon}
onRight={()=>{}}
rightTitle={null}
rightButtonIconStyle={{ width: 44, height: 44 }} />
事实证明,汉堡菜单按钮更加困难。导航栏上有一个 drawerImage 属性,但是没有关于如何显示该 drawerImage 以及如何设置处理函数的其他文档。
我尝试设置 rightButtonImage、onRight rightTitle 和 rightButtonIconStyle,就像设置左按钮一样,但没有出现按钮。
更新 2:由于这个问题,我降级到 react-native-router-flux v3.34.0:https://github.com/aksonov/react-native-router-flux/issues/1154
并将这些道具添加到我的场景中:
...
renderBackButton={()=>{ return null; }} /* Hide the back button...goofy mechanism but it works */
leftButtonImage={NavigationBurgerIcon}
onLeft={()=>{}}
leftTitle={null}
leftButtonIconStyle={{ width: 30, height: 30 }}
...
您可以编写自己的导航栏以实现 100% 控制。您可以从 their implementation of NavBar 构建 NavBar 组件并执行以下操作:
<Router
navBar={NavBar}
...
/>
react-native-router-flux api 对此有更多详细信息。
完成后,您可以创建自定义属性以添加到您的场景中,从而为您的项目定制各种导航栏行为,例如您希望如何与汉堡包图标进行交互。
你可以这样做。
<Router renderLeftButton={this.navBarButton}>
<Scene .....
</Router>
函数:
navBarButton(){
return(
<TouchableOpacity onPress={() => Actions.refresh({ key: 'drawer', open: true })}>
<Icon name='ios-menu' size={30} />
</TouchableOpacity>
)
}