Header 在抽屉侧边菜单上方呈现

Header is rendering above on top of drawer sidemenu

Image link

当我打开抽屉时,header 图标和边框在抽屉侧菜单上方仍然可见。即使抽屉打开,菜单图标和徽标仍会出现。 我使用过堆栈导航器和抽屉导航器。

const DrawerNav = DrawerNavigator({
    WEB: { screen: ScanScreen },
   },{
       initialRouteName: 'WEB',
       drawerPosition: 'right',
});
const PrimaryNav = StackNavigator({
    LoginScreen: { screen: LoginScreen, navigationOptions : {header: null} },
    DrawerNav: { screen: DrawerNav },
}, {
  headerMode: 'float',
  navigationOptions: ({navigation}) => ({
      initialRouteName: 'LoginScreen',
      headerTransparent: true,
    headerStyle: styles.header,
    headerTitleStyle : styles.headerTitleStyle,
    headerBackTitleStyle : styles.headerBackTitleStyle,
    headerLeft: <Image source={Images.logo_splash} style={styles.logo} />,
    headerRight: <TouchableOpacity onPress={() => navigation.navigate('DrawerToggle')}>
                    <Image source={Images.icon_navigation} style={styles.menu}/>
                </TouchableOpacity>
  })
});

StyleSheet.create({
  header: {
    backgroundColor: Colors.clear,
    borderBottomColor : Colors.pinkDark,
    borderBottomWidth: 0.5,
  },
  headerTitleStyle : {
    color: Colors.white
  },
  headerBackTitleStyle : {
    color: Colors.white
  },
  logo: {
    height:30,
    width:55,
    resizeMode: 'contain',
  },
  menu: {
    height:20,
    width:60,
    resizeMode: 'contain',
  },
}) 

您需要稍微更改一下导航结构。

现在您有一个 StackNavigator,并且在其中有一个抽屉。由于嵌套,StackNavigator header 将在打开时显示在抽屉上方。

您需要稍微尝试一下设置。一种可行的方法是拥有一个隐藏 header 的根 StackNavigator (1)。在 (1) 中,您将有一个 DrawerNavigator (2),其中有一个 StackNavigator (3)。在 (3) 中,您将拥有自己的 WEB 屏幕。在 (1) 中,您可以拥有另一个带有 LoginScreen 的 StackNavigator。