react-navigation学习笔记五:createBottomTabNavigator

搭建demo使用相关版本:
"react-native": "0.56.0",
"react-navigation": "^2.18.2"

介绍

移动应用程序中最常见的导航风格可能是基于标签的导航。这可以是屏幕底部或标题下方顶部的标签。官网介绍

简单使用 相关介绍都注释在代码里面了

//createBottomTabNavigator
import React from 'react';
import {Text, View, Image, Button, Dimensions, TouchableOpacity} from 'react-native';
import {createBottomTabNavigator} from 'react-navigation';


//自定义tabBar
const tabBar = () => {
    return 
        自定义的tabBar
    
}

//自定义的tabBarButton
const HomeBtn = () => {
    return  {
            console.log('点击了主页')
        }}
    >
        主页

    
}

//路由组件
class HomeScreen extends React.Component {
    static navigationOptions = {
        //tabBarButton  自定义button
        //这个和title与tabBarIcon  冲突
        tabBarButtonComponent: HomeBtn
    }

    render() {
        return (
            
                this is HomeScreen!
            
        );
    }
}

class RecordScreen extends React.Component {
    //用于导航器内的屏幕
    static navigationOptions = {
        // tabBarVisible: true,//true或false显示或隐藏标签栏,如果未设置则默认为true。
        // tabBarAccessibilityLabel: '', //选项卡按钮的辅助功能标签。当用户点击标签时,屏幕阅读器会读取此信息。如果您没有选项卡的标签,建议设置此项。
        // tabBarTestID: '',//用于在测试中找到此选项卡按钮的ID。

        //通用标题可以用作备用headerTitle和tabBarLabel。
        title: '档案',
        //设置tabBarButton的图像
        tabBarIcon: ({focused, horizontal, tintColor}) => {
            return 
        },
        //回调处理新闻事件; 参数是一个对象,包含:navigation:屏幕导航道具  defaultHandler:tab按下的默认处理程序
        tabBarOnPress: (event) => {
            event.defaultHandler();//调用组建内默认的实现方法
            console.log('点击了某个tabBatBtn' + event);

        },

        // //tabBarButton  自定义button
        // //这个和title与tabBarIcon  冲突
        // tabBarButtonComponent: () => {
        //
        // },


    }

    render() {
        return (
            
                this is RecordScreen!
            
        );
    }
}

//入口
export default createBottomTabNavigator(
    {
        Home: {screen: HomeScreen},
        Record: {screen: RecordScreen},
    }, {
        initialRouteName: 'Record', //首次加载时初始制表符路径的routeName。
        order: ['Record', 'Home'], //routeNames数组,用于定义选项卡的顺序。

        //可用来自定义  tabBar  这个与下面的tabBarOptions有冲突 配置一个就好了
        // tabBarComponent: tabBar,//可选,覆盖用作标签栏的组件。


        //tabBar 相关配置具有以下属性的对象:
        tabBarOptions: {
            activeTintColor: 'blue',//活动选项卡的标签和图标颜色。
            activeBackgroundColor: 'red',//活动选项卡的背景颜色。
            inactiveTintColor: 'yellow',//非活动选项卡的标签和图标颜色。
            inactiveBackgroundColor: 'pink',//非活动选项卡的背景颜色。

            // showLabel: true,//是否为标签显示标签,默认为true。
            // showIcon: true,//是否显示选项卡的图标,默认为true。

            // style: {},//标签栏的样式对象。
            labelStyle: {//选项卡标签的样式对象。
                fontSize: 20
            },
            // tabStyle: {},//选项卡的样式对象。

            // allowFontScaling: true,//标签字体是否应缩放以符合“文本大小”辅助功能设置,默认为true。

            // //覆盖forceInset道具 < SafeAreaView >。
            // // 默认为{bottom:'always', top:'never'}。可用键top | bottom | left | right随值提供'always' | 'never'。
            // safeAreaInset: {
            //     bottom: 'always',
            //     top: 'never'
            // },
        }
    }
);

API官网介绍

你可能感兴趣的:(react-navigation学习笔记五:createBottomTabNavigator)