import { createBottomTabNavigator } from ‘react-navigation’
createBottomTabNavigator 创建底部切换的tab>
完整代码 https://github.com/withwz/RN-boilerplate/tree/master/App/Containers/ListViewTaste/FooterNav
配置看程序和注释
效果

程序目录结构

// footer.js
/**** @see https://blog.csdn.net/zcmain/article/details/89019747**/import React from 'react'import { Image } from 'react-native';import { createAppContainer, createBottomTabNavigator } from 'react-navigation'import Page1 from '../pages/Page1'import Page2 from '../pages/Page2'import Page3 from '../pages/Page3'/*** 底部标签导航*/const bottomNavigator = createBottomTabNavigator(/*** RouteConfigs*/{//路由页面1bottomPage1: {screen: Page1,navigationOptions: {tabBarLabel: 'pageone',tabBarIcon: ({ focused }) => (<Imagestyle={{ width: 22, height: 22 }}source={focused? require('../../../../Assets/bottomFooter/home.png'): require('../../../../Assets/bottomFooter/home-green.png')}></Image>),}},//路由页面2bottomPage2: {screen: Page2,navigationOptions: {tabBarLabel: 'pagetwo',tabBarIcon: ({ focused }) => (<Imagestyle={{ width: 22, height: 22 }}source={focused? require('../../../../Assets/bottomFooter/type.png'): require('../../../../Assets/bottomFooter/type-green.png')}></Image>),}},//路由页面3bottomPage3: {screen: Page3,navigationOptions: {tabBarLabel: 'pagethree',tabBarIcon: ({ focused }) => (<Imagestyle={{ width: 22, height: 22 }}source={focused? require('../../../../Assets/bottomFooter/my.png'): require('../../../../Assets/bottomFooter/my-green.png')}></Image>),}},},/*** BottomTabNavigatorConfig*/{// andorid按下返回键将返回initalRouteName,如果设置非initalRouteName则直接结束标签导航backBehavior: 'none',// 设置首次加载的页面默认为RouteConfig中第一个(指定的必须为Routeonfig中定义的路由页面)//initialRouteName: 'bottomPage3',// 定义tab顺序的routeNames数组//order: ['bottomPage1', 'bottomPage2', 'bottomPage3'],//导航栏选项tabBarOptions: {//设置是否显示tab上图标showIcon: true,//设置tab激活时文字和图标(前提是tabBarIcon的style设置tintColor)颜色activeTintColor: '#fd742f',//设置tab未激活文字和图标(前提是tabBarIcon的style设置tintColor)颜色inactiveTintColor: '#a6a1aa',//设置tab激活时候背景颜色activeBackgroundColor: '#e0dce0',//设置整个tabbar的样式(背景颜色、高等( height: 55))style: { backgroundColor: '#f5f4f9', height: 55 },//设置tab上文字样式(可设置字体大小等、内边距等)labelStyle: { fontSize: 16 },// 设置单个tab样式//tabStyle:{backgroundColor:'#9524d3',},// 设置是否显示tab文字//showLabel: true,// 设置tab未激活时候背景颜色//inactiveBackgroundColor:'#a4d9ff',},});const bottomAppContainer = createAppContainer(bottomNavigator);export default bottomAppContainer;
// route.js
import {
createStackNavigator,
createAppContainer,
} from 'react-navigation';
// import Welcome from '../WelcomeComponent'
// import TopNavigator from './TopNavigatorComponent'
import BottomNavigator from './footer'
/**
* 栈式导航
*/
const stackNavigator = createStackNavigator(
//除了底部footer的配置还可以指定要加载的RN组件
{
// welcomePage: {
// screen: Welcome,
// },
// topNavigatorPage: {
// screen: TopNavigator,
// navigationOptions: () => ({
// header: null,
// })
// },
bottomNavigatorPage: {
screen: BottomNavigator,
navigationOptions: ({}) => ({
header: null,
})
}
}
);
const appStackNavigator = createAppContainer(stackNavigator);
export default appStackNavigator;
