我有一个材料顶部标签导航器和一个抽屉导航器,当两者都嵌套在堆栈/开关导航器中时,都会成功地显示。但是我看不出有什么区别。使用哪一种方法有什么不同?如果是的话,哪一种更好,或者是否取决于偏好。
下面是我目前使用的开关导航器:
const TabNavigator = createMaterialTopTabNavigator(
{
Calculator: {
screen: CalculatorScreen,
navigationOptions: {
tabBarIcon: ({}) => (
<Icon name='ios-calculator' size={28} color='#FFF'/>
)
}
},
Camera: {
screen: CameraScreen,
navigationOptions: {
tabBarIcon: ({}) => (
<Icon name='ios-camera' size={28} color='#FFF'/>
)
}
},
Solution: {
screen: SolutionScreen,
navigationOptions: {
tabBarIcon: ({}) => (
<Icon name='ios-paper' size={28} color='#FFF'/>
)
}
}
},
{
animationEnabled: false,
initialRouteName: 'Camera',
tabBarPosition: 'bottom',
tabBarOptions: {
showIcon: true,
showLabel: false,
indicatorStyle: {
opacity: 0
},
style: {
backgroundColor: 'transparent',
position: 'absolute',
left: 0,
bottom: 0,
right: 0
}
}
}
)
const DrawerNavigator = createDrawerNavigator(
{
Contact: {
screen: TabNavigator
}
},
{
drawerBackgroundColor: 'rgba(255,255,255,.9)',
contentOptions: {
activeTintColor: '#fff',
activeBackgroundColor: '#6b52ae',
},
}
);
const SwitchNavigator = createSwitchNavigator(
{
Drawer: {
screen: DrawerNavigator
},
Screen: {
screen: TabNavigator
}
}
)
export default AppContainer = createAppContainer(SwitchNavigator)在这两种情况下,我得到的结果几乎是相同的。所以,我唯一的问题是,哪一个更好,区别是什么?
发布于 2019-08-29 01:28:45
switchnavigator和stacknavigator之间的区别在于是否堆栈。默认情况下,每次移动屏幕时,StackNavigator都会生成堆栈。这意味着您将看到屏幕上的屏幕,因此您可以执行'goBack()‘按钮。但是,switchnavigator不堆栈。switchnavigator 在移动屏幕时重置路径。
SwitchNavigator:
SwitchNavigator的目的是一次只显示一个屏幕。默认情况下,它不处理回退操作,并在切换时将路由重置为默认状态。 StackNavigator:为您的应用程序提供了一种在屏幕之间进行转换的方法,其中每个新屏幕都放在堆栈的顶部。
https://stackoverflow.com/questions/57701406
复制相似问题