'Hide bottomTabNavigator react native

I'm trying to make my bottomTabNavigator hide when I click on a screen and then become visible again once you scroll. Here is my code for my StackNavigator and BottomTabNavigator:

function UsersScreenNavigator() {
        const Stack = createNativeStackNavigator();
    
        return (
            <Stack.Navigator screenOptions={{headerShown: false}}>
                <Stack.Screen name="Users" component={BottomTabNavigator} options={{headerShown: false}}/>
                <Stack.Screen name="Profile" component={Profile} options={{headerShown: false}}/>
                <Stack.Screen name="Settings" component={Settings} options={{headerShown: false}}/>
                <Stack.Screen name="EditProfile" component={EditProfile} options={{headerShown: false}}/>
                <Stack.Screen name="BackButton" component={BackButton} options={{headerShown: false}}/>
            </Stack.Navigator>
        );
    }

    function BottomTabNavigator() {
    const {buttonShell, buttonText} = styles;
    const Tab = createBottomTabNavigator();
    const Icon = createIconSet(glyphMap, 'Fuze', 'Fuze.ttf');
    let [fontsLoaded] = useFonts({
        'Fuze': require('../../../assets/Fuze.ttf'),
        Roboto_500Medium
    });

    if (!fontsLoaded) {
        return <></>;
    } else {
        return (
            <Tab.Navigator
                initialRouteName="Users"
                screenOptions={{
                    headerShown: false,
                    tabBarShowLabel: false,
                    tabBarStyle: {borderColor: '#DBDBDB', height: 100, paddingTop: 16},
                }}
            >
                {
                    bottomTabs.map((bottomTab) => {
                            return (
                                <Tab.Screen
                                    key={`screen-${bottomTab.title}`}
                                    name={bottomTab.title}
                                    component={bottomTab.componentName}
                                    options={{
                                        unmountOnBlur: true,
                                        tabBarIcon: (({focused}) => {
                                            return !focused ?
                                                <Icon name={bottomTab.icon} size={32}/> :
                                                <View style={buttonShell}>
                                                    <Text style={buttonText}>{bottomTab.title}</Text>
                                                </View>

                                        })
                                    }}
                                />
                            )
                        }
                    )
                }
            </Tab.Navigator>
        )
    }
}

Here is my screen I want to hide the bottomNavigator on and the array of screens I map to my navigator:

   export const bottomTabs = [
    {
        title: 'User',
        componentName: Users,
        icon: 'icon-User'
    },
    {
        title: 'Check-in',
        componentName: CheckInScreenNavigator,
        icon: 'icon-CheckIn'
    },
    {
        title: 'Hub',
        componentName: HubScreenNavigator,
        icon: 'icon-Hub'
    },
    {
        title: 'Chats',
        componentName: Chats,
        icon: 'icon-Chats'
    }
]

    function Users() {
    const windowWidth = Dimensions.get('window').width;
    const windowHeight = Dimensions.get('window').height;

    let [fontsLoaded] = useFonts({
        Roboto_400Regular,
        Roboto_500Medium
    });

    if (!fontsLoaded) {
        return <></>;
    } else {
        return (
            <View>
            <ScrollView>
                <View style={{flex: 1}}>
                    <ProfileButton/>
                    <Image style={{height: windowHeight - 100, width: windowWidth}} source={mockUsers[0].pictures[0]}/>
                    <UserProfileInfo/>
                </View>
                <View>
                    <Text style={{
                        fontSize: 16,
                        fontFamily: 'Roboto_400Regular',
                        marginTop: 32,
                        marginBottom: 16,
                        marginLeft: 32
                    }}>About</Text>
                    <View style={{marginLeft: 32}}>
                        <Text style={{fontSize: 14, color: '#878787', fontFamily: 'Roboto_400Regular'}}>
                            {mockUsers[0].about}
                        </Text>
                    </View>
                    <Text style={{
                        fontSize: 16,
                        fontFamily: 'Roboto_400Regular',
                        marginTop: 32,
                        marginBottom: 16,
                        marginLeft: 32
                    }}>Interests</Text>
                    <View style={{flexDirection: 'row', flexWrap: 'wrap', marginLeft: 32, marginRight: 32}}>
                        {mockUsers[0].userInterests?.map((interest, index) => {
                            return (
                                <View style={{backgroundColor: '#000', borderRadius: 44, minHeight: 44, justifyContent: 'center', marginRight: 8, marginBottom: 16}}>
                                    <Text key={`interest-${index}`} style={{
                                        color: '#FFF',
                                        fontFamily: 'Roboto_500Medium',
                                        fontSize: 18,
                                        paddingTop: 8,
                                        paddingLeft: 24,
                                        paddingBottom: 8,
                                        paddingRight: 24,
                                    }}>{interest}</Text>
                                </View>
                            )
                        })}
                    </View>
                    <Text style={{
                        fontSize: 16,
                        fontFamily: 'Roboto_400Regular',
                        marginTop: 32,
                        marginBottom: 16,
                        marginLeft: 32
                    }}>Questions and answers</Text>
                    <AnsweredQuestionInput />
                    <AnsweredQuestionInput />
                    <AnsweredQuestionInput />
                    <Text style={{
                        fontSize: 16,
                        fontFamily: 'Roboto_400Regular',
                        marginTop: 32,
                        marginBottom: 16,
                        marginLeft: 32
                    }}>Pictures</Text>
                    <Pictures userPictures={mockUsers[0].pictures} blur={true}/>
                </View>
            </ScrollView>
                <LikeAndDislike />
            </View>

        );
    }
}

Apologies for the un-neat code I am mid writing this and cannot find a way to hide the tabBar.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source