【发布时间】:2018-12-25 17:46:12
【问题描述】:
我有一个应用程序需要能够使用两个抽屉导航器,一个在标题的左侧,一个在右侧。
我现在可以通过滑动手势打开两个抽屉,但是我需要能够以编程方式打开它。我发现navigation.openDrawer() 函数只适用于其中一个抽屉,而不适用于另一个,因为它只能使用我的抽屉导航器中的一个导航道具(以先到者为准)。
以下是我的渲染函数:
const LeftStack = createStackNavigator(
{
LeftDrawerStack
},
{
navigationOptions: ({navigation}) => ({
headerLeft: (
<TouchableOpacity onPress={() => navigation.openDrawer()}>
<Icon style={{marginLeft: 10}} name='menu'/>
</TouchableOpacity>
)
})
}
);
const RightStack = createStackNavigator(
{
RightDrawerStack
},
{
navigationOptions: ({navigation}) => ({
headerRight: (
<TouchableOpacity onPress={() => navigation.openDrawer()}>
<Icon style={{marginRight: 10}} name='ios-bulb'/>
</TouchableOpacity>
)
})
}
);
export const RouteStack = createStackNavigator(
{
screen: LoginScreen,
navigationOptions: ({navigation}) => ({
header: null
}),
LeftStack,
RightStack
}
);
这是我的抽屉路线:
export const LeftDrawerStack = createDrawerNavigator(
{
Dashboard: {
screen: DashboardScreen
},
History: {
screen: HistoryScreen
},
Privacy: {
screen: PrivacyPolicyScreen
},
TermsAndConditions: {
screen: TermsAndConditionsScreen
}
}, {
initialRouteName: 'Dashboard',
contentComponent: LeftDrawerScreen
}
);
export const RightDrawerStack = createDrawerNavigator(
{
LeftDrawerStack,
Settings: {
screen: SettingsScreen
}
}, {
drawerPosition: 'right',
contentComponent: RightDrawerScreen
}
);
这是我目前的导航图,但是两个汉堡菜单都在右侧打开同一个菜单,而不是在各自的两侧打开一个菜单。
我可能遗漏了一些部分,但如果我忘记了,我一定会发布更多信息!
【问题讨论】:
-
在用户体验 (UX) 级别,为什么需要打开两个抽屉?它会占用整个屏幕,为什么不使用一个占用整个屏幕的抽屉,您可以将该抽屉分成两个以显示您的选项,但我仍然没有您想要实现的图片
-
这是在 v5 中的操作方法:stackoverflow.com/questions/61742796/…
标签: javascript android ios react-native react-navigation