简体   繁体   中英

Hiding tab bar with nested navigation

I used nested navigation for my problem. Currently, however, the tab bar is only displayed on pages listed in TabNavigator. Is it possible to display on other pages as well? It is possible to display the tab bar also on screen5. I also have screen6 where I don't want to display the tab bar, so I solve it this way.

App.js

<NavigationContainer
      ref={ref}
>
    <Navigation />
</NavigationContainer>

Tab.js

const Tab = createBottomTabNavigator();

const Tabs = (props) => {
    return(
        <Tab.Navigator>
            <Tab.Screen name="Screen1" component={Screen1} />
            <Tab.Screen name="Screen2" component={Screen2} />
            <Tab.Screen name="Screen3" component={Screen3} />
            <Tab.Screen name="Screen4" component={Screen4} />   
        </Tab.Navigator>
    );
}
<Stack.Navigator>
    <Stack.Group screenOptions={{ headerShown: false }}>
        <Stack.Screen name="Screen1" component={Tabs}/>
        <Stack.Screen name="Screen2" component={Screen2}/>
        <Stack.Screen name="Screen3" component={Screen3}/>
        <Stack.Screen name="Screen4" component={Screen4}/>
        <Stack.Screen name="Screen5" component={Screen5}/>
        <Stack.Screen name="Screen6" component={Screen6}/>
    </Stack.Group>
</Stack.Navigator>

Screen4

const Screen4 = ({navigation}) => {
    return (
        <SafeAreaView>
            <Pressable onPress={() => {navigation.navigate('Screen5')}}>
                <Text>Screen5</Text>
            </Pressable>
        </SafeAreaView>
    );
}
export default Screen4;

I think you are aksing about this.

const Tab = createBottomTabNavigator();
const Stack = createStackNavigator();

const HomeNavigator = () => {
  <Stack.Navigator>
    <Stack.Screen name="Screen1" component={Screen1} />
    <Stack.Screen name="Screen2" component={Screen2} />
  </Stack.Navigator>;
};

const ProfileNavigator = () => {
  <Stack.Navigator>
    <Stack.Screen name="Screen3" component={Screen3} />
    <Stack.Screen name="Screen3" component={Screen3} />
  </Stack.Navigator>;
};

const Tabs = (props) => {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home" component={HomeNavigator} />
      <Tab.Screen name="Profile" component={ProfileNavigator} />
      <Tab.Screen name="YourOtherNavigator" component={YourOtherNavigator} />
    </Tab.Navigator>
  );
};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM