React Native Navigation - createBottomTabNavigator and hiding Tab Bar
up vote
0
down vote
favorite
I am working with an Expo app which comes bundles with the react-native-navigation.
It works great and I have setup several Stacked Navigations but I cannot seem to get my modals to display without the bottom Tab Navigator.
Below is the navigation folder structure:
Here are the files:
AppNavigator.js
import createSwitchNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
export default createSwitchNavigator(
Main: MainTabNavigator
)
MainTabNavigator.js
import React from 'react'
import Platform from 'react-native'
import createStackNavigator, createBottomTabNavigator from 'react-navigation'
// Import Stacks
import SettingsStack from './stacks/SettingsStack.js'
// Import Components
import TabBarIcon from '../components/TabBarIcon'
// Import Screens
import HomeScreen from '../screens/HomeScreen'
import ExercisesScreen from '../screens/ExercisesScreen'
import ExerciseDetailScreen from '../screens/ExerciseDetailScreen'
import VideoScreen from '../screens/VideoScreen'
import ExerciseStartScreen from '../screens/ExerciseStartScreen'
const HomeStack = createStackNavigator(
Home: HomeScreen,
ExerciseDetails: ExerciseDetailScreen
)
const StartWorkOut = createStackNavigator(
Home: HomeScreen,
ExerciseStart: ExerciseStartScreen
)
StartWorkOut.navigationOptions =
tabBarVisible: false
const RootStack = createStackNavigator(
Main: HomeStack,
ExerciseStart: ExerciseStartScreen,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
const ExercisesStack = createStackNavigator(
Exercises: ExercisesScreen,
ExerciseDetails: ExerciseDetailScreen
)
const ExerciseRootStack = createStackNavigator(
Main: ExercisesStack,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
RootStack.navigationOptions =
tabBarLabel: 'Home',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
ExerciseRootStack.navigationOptions =
tabBarLabel: 'Exercises',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
export default createBottomTabNavigator(
RootStack,
ExerciseRootStack,
SettingsStack
)
The settings Stack file is not important and I have tried adding the following into screens, without any luck:
static navigationOptions =
tabBarVisible: false
Thanks!
javascript react-native react-native-navigation
add a comment |
up vote
0
down vote
favorite
I am working with an Expo app which comes bundles with the react-native-navigation.
It works great and I have setup several Stacked Navigations but I cannot seem to get my modals to display without the bottom Tab Navigator.
Below is the navigation folder structure:
Here are the files:
AppNavigator.js
import createSwitchNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
export default createSwitchNavigator(
Main: MainTabNavigator
)
MainTabNavigator.js
import React from 'react'
import Platform from 'react-native'
import createStackNavigator, createBottomTabNavigator from 'react-navigation'
// Import Stacks
import SettingsStack from './stacks/SettingsStack.js'
// Import Components
import TabBarIcon from '../components/TabBarIcon'
// Import Screens
import HomeScreen from '../screens/HomeScreen'
import ExercisesScreen from '../screens/ExercisesScreen'
import ExerciseDetailScreen from '../screens/ExerciseDetailScreen'
import VideoScreen from '../screens/VideoScreen'
import ExerciseStartScreen from '../screens/ExerciseStartScreen'
const HomeStack = createStackNavigator(
Home: HomeScreen,
ExerciseDetails: ExerciseDetailScreen
)
const StartWorkOut = createStackNavigator(
Home: HomeScreen,
ExerciseStart: ExerciseStartScreen
)
StartWorkOut.navigationOptions =
tabBarVisible: false
const RootStack = createStackNavigator(
Main: HomeStack,
ExerciseStart: ExerciseStartScreen,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
const ExercisesStack = createStackNavigator(
Exercises: ExercisesScreen,
ExerciseDetails: ExerciseDetailScreen
)
const ExerciseRootStack = createStackNavigator(
Main: ExercisesStack,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
RootStack.navigationOptions =
tabBarLabel: 'Home',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
ExerciseRootStack.navigationOptions =
tabBarLabel: 'Exercises',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
export default createBottomTabNavigator(
RootStack,
ExerciseRootStack,
SettingsStack
)
The settings Stack file is not important and I have tried adding the following into screens, without any luck:
static navigationOptions =
tabBarVisible: false
Thanks!
javascript react-native react-native-navigation
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am working with an Expo app which comes bundles with the react-native-navigation.
It works great and I have setup several Stacked Navigations but I cannot seem to get my modals to display without the bottom Tab Navigator.
Below is the navigation folder structure:
Here are the files:
AppNavigator.js
import createSwitchNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
export default createSwitchNavigator(
Main: MainTabNavigator
)
MainTabNavigator.js
import React from 'react'
import Platform from 'react-native'
import createStackNavigator, createBottomTabNavigator from 'react-navigation'
// Import Stacks
import SettingsStack from './stacks/SettingsStack.js'
// Import Components
import TabBarIcon from '../components/TabBarIcon'
// Import Screens
import HomeScreen from '../screens/HomeScreen'
import ExercisesScreen from '../screens/ExercisesScreen'
import ExerciseDetailScreen from '../screens/ExerciseDetailScreen'
import VideoScreen from '../screens/VideoScreen'
import ExerciseStartScreen from '../screens/ExerciseStartScreen'
const HomeStack = createStackNavigator(
Home: HomeScreen,
ExerciseDetails: ExerciseDetailScreen
)
const StartWorkOut = createStackNavigator(
Home: HomeScreen,
ExerciseStart: ExerciseStartScreen
)
StartWorkOut.navigationOptions =
tabBarVisible: false
const RootStack = createStackNavigator(
Main: HomeStack,
ExerciseStart: ExerciseStartScreen,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
const ExercisesStack = createStackNavigator(
Exercises: ExercisesScreen,
ExerciseDetails: ExerciseDetailScreen
)
const ExerciseRootStack = createStackNavigator(
Main: ExercisesStack,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
RootStack.navigationOptions =
tabBarLabel: 'Home',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
ExerciseRootStack.navigationOptions =
tabBarLabel: 'Exercises',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
export default createBottomTabNavigator(
RootStack,
ExerciseRootStack,
SettingsStack
)
The settings Stack file is not important and I have tried adding the following into screens, without any luck:
static navigationOptions =
tabBarVisible: false
Thanks!
javascript react-native react-native-navigation
I am working with an Expo app which comes bundles with the react-native-navigation.
It works great and I have setup several Stacked Navigations but I cannot seem to get my modals to display without the bottom Tab Navigator.
Below is the navigation folder structure:
Here are the files:
AppNavigator.js
import createSwitchNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
export default createSwitchNavigator(
Main: MainTabNavigator
)
MainTabNavigator.js
import React from 'react'
import Platform from 'react-native'
import createStackNavigator, createBottomTabNavigator from 'react-navigation'
// Import Stacks
import SettingsStack from './stacks/SettingsStack.js'
// Import Components
import TabBarIcon from '../components/TabBarIcon'
// Import Screens
import HomeScreen from '../screens/HomeScreen'
import ExercisesScreen from '../screens/ExercisesScreen'
import ExerciseDetailScreen from '../screens/ExerciseDetailScreen'
import VideoScreen from '../screens/VideoScreen'
import ExerciseStartScreen from '../screens/ExerciseStartScreen'
const HomeStack = createStackNavigator(
Home: HomeScreen,
ExerciseDetails: ExerciseDetailScreen
)
const StartWorkOut = createStackNavigator(
Home: HomeScreen,
ExerciseStart: ExerciseStartScreen
)
StartWorkOut.navigationOptions =
tabBarVisible: false
const RootStack = createStackNavigator(
Main: HomeStack,
ExerciseStart: ExerciseStartScreen,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
const ExercisesStack = createStackNavigator(
Exercises: ExercisesScreen,
ExerciseDetails: ExerciseDetailScreen
)
const ExerciseRootStack = createStackNavigator(
Main: ExercisesStack,
VideoScreen:
screen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
tabBarVisible: false
)
RootStack.navigationOptions =
tabBarLabel: 'Home',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
ExerciseRootStack.navigationOptions =
tabBarLabel: 'Exercises',
tabBarIcon: ( focused ) => (
<TabBarIcon
focused=focused
name=
Platform.OS === 'ios'
? `ios-information-circle$focused ? '' : '-outline'`
: 'md-information-circle'
/>
)
export default createBottomTabNavigator(
RootStack,
ExerciseRootStack,
SettingsStack
)
The settings Stack file is not important and I have tried adding the following into screens, without any luck:
static navigationOptions =
tabBarVisible: false
Thanks!
javascript react-native react-native-navigation
javascript react-native react-native-navigation
asked Nov 11 at 15:03
Siegfried Grimbeek
513615
513615
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I managed to figure it out in the end.
I had to refactor the code and remove the modals from the tab navigator and add it directly to the AppNAvigator.js as below:
import createStackNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
// Import Screens
import HomeScreen from '../screens/HomeScreen.js'
import ExerciseStartScreen from '../screens/ExerciseStartScreen.js'
import VideoScreen from '../screens/VideoScreen.js'
export default createStackNavigator(
Main: MainTabNavigator,
ExerciseStart: ExerciseStartScreen,
VideoScreen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
navigationOptions:
header: null
)
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I managed to figure it out in the end.
I had to refactor the code and remove the modals from the tab navigator and add it directly to the AppNAvigator.js as below:
import createStackNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
// Import Screens
import HomeScreen from '../screens/HomeScreen.js'
import ExerciseStartScreen from '../screens/ExerciseStartScreen.js'
import VideoScreen from '../screens/VideoScreen.js'
export default createStackNavigator(
Main: MainTabNavigator,
ExerciseStart: ExerciseStartScreen,
VideoScreen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
navigationOptions:
header: null
)
add a comment |
up vote
0
down vote
I managed to figure it out in the end.
I had to refactor the code and remove the modals from the tab navigator and add it directly to the AppNAvigator.js as below:
import createStackNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
// Import Screens
import HomeScreen from '../screens/HomeScreen.js'
import ExerciseStartScreen from '../screens/ExerciseStartScreen.js'
import VideoScreen from '../screens/VideoScreen.js'
export default createStackNavigator(
Main: MainTabNavigator,
ExerciseStart: ExerciseStartScreen,
VideoScreen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
navigationOptions:
header: null
)
add a comment |
up vote
0
down vote
up vote
0
down vote
I managed to figure it out in the end.
I had to refactor the code and remove the modals from the tab navigator and add it directly to the AppNAvigator.js as below:
import createStackNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
// Import Screens
import HomeScreen from '../screens/HomeScreen.js'
import ExerciseStartScreen from '../screens/ExerciseStartScreen.js'
import VideoScreen from '../screens/VideoScreen.js'
export default createStackNavigator(
Main: MainTabNavigator,
ExerciseStart: ExerciseStartScreen,
VideoScreen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
navigationOptions:
header: null
)
I managed to figure it out in the end.
I had to refactor the code and remove the modals from the tab navigator and add it directly to the AppNAvigator.js as below:
import createStackNavigator from 'react-navigation'
import MainTabNavigator from './MainTabNavigator'
// Import Screens
import HomeScreen from '../screens/HomeScreen.js'
import ExerciseStartScreen from '../screens/ExerciseStartScreen.js'
import VideoScreen from '../screens/VideoScreen.js'
export default createStackNavigator(
Main: MainTabNavigator,
ExerciseStart: ExerciseStartScreen,
VideoScreen: VideoScreen
,
mode: 'modal',
headerMode: 'none',
navigationOptions:
header: null
)
answered Nov 11 at 21:06
Siegfried Grimbeek
513615
513615
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53250000%2freact-native-navigation-createbottomtabnavigator-and-hiding-tab-bar%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown