import React, { Component } from 'react';
import {StyleSheet,Text,Button,View,TabBarItem} from 'react-native';
import {StackNavigator,TabNavigator} from 'react-navigation';
import Icon from 'react-native-vector-icons/Feather';//图标库
import { IS_ANDROID, IS_IOS } from './config/base';

//底部导航栏 ----- start ---------
const TabSty = new Object();
if(IS_IOS){
    TabSty = {
        activeTintColor:'#6b52ae', //活动选项卡的标签和图标颜色。
//          activeBackgroundColor:'#000',//活动选项卡的背景颜色
            inactiveTintColor:'#333',//非活动选项卡的标签和图标颜色。
//          inactiveBackgroundColor:'#fff',//非活动选项卡的背景颜色
        labelStyle:{//标签标签的样式对象
                fontSize:12,
                marginBottom:5
            }
    }
}else if(IS_ANDROID){
    TabSty = {
        activeTintColor:'#6b52ae', //活动选项卡的标签和图标颜色。
            inactiveTintColor:'#333',//非活动选项卡的标签和图标颜色。
            showIcon:true,//是否显示标签图标,默认为false。
            pressOpacity:0.1,//按下标签的不透明度
            pressColor:'#ccc',//材质纹波的颜色(仅限Android> = 5.0)--按下的水印
            tabStyle:{//选项卡的样式对象。
                paddingTop:5
            },
            labelStyle:{//标签标签的样式对象
                fontSize:12,
               margin:0
            },
            //选项卡指示符的样式对象(选项卡底部的行)。
            indicatorStyle:{
                height:0
            }
    }
}
//标签栏的样式对象。
TabSty.style = {
    height:50,
    backgroundColor:'#fff'
}
const Tab = TabNavigator(
    {
        Home:{
            screen: require('./components/index/index.js').default,//该底部导航栏该项对应的页面
            navigationOptions: ({ navigation }) => ({
                title:'消息',//页面标题
                tabBarLabel: '消息',//导航栏该项标题
                tabBarIcon: ({ tintColor, focused }) => (  //tintColor -- 这个是  状态切换的时候给图标不同的颜色
                      <Icon name="message-square" style={{color:tintColor,fontSize:16}}/>       
                )  
            }),
        },
        Nearby:{
            screen: require('./components/index/index.js').default,
            navigationOptions: ({ navigation }) => ({
                    title:'工作台',
                tabBarLabel: '工作台',
                tabBarIcon: ({ tintColor, focused }) => (  
                      <Icon name="home" style={{color:tintColor,fontSize:16}}/>       
                ) 
            }),
        },
        Message:{
            screen: require('./components/index/index.js').default,
            navigationOptions: ({ navigation }) => ({
                    title:'我的',
                tabBarLabel: '我的',
                tabBarIcon: ({ tintColor, focused }) => (  
                   <Icon name="user" style={{color:tintColor,fontSize:16}}/>       
                ) 
            }),
        }
    },
    {
        tabBarPosition: 'bottom',
        swipeEnabled: true,//标签之间进行滑动  
        animationEnabled: true,
        lazy: true,// 是否懒加载  
        tabBarOptions:TabSty
    }
);

//底部导航栏 ----- end ---------

//定义  StackNavigator  导航跳转 ---  start ------
//工作台模块
import indexRout from './rout/indexRout.js';
const androidTitleSty = new Object();
const Navigator = StackNavigator( { Tab: {screen:Tab}, ...indexRout }, {
    //设置导航栏公用的样式 navigationOptions:({
navigation }) => ({ //设置导航条的样式。背景色,宽高等 headerStyle:{ }, //设置导航栏文字样式 headerTitleStyle:{ flex:1, textAlign:'center',    fontWeight:'normal',    fontSize:15,    color:'#666' }, headerBackTitle:null, //返回箭头重写 headerLeft:() => { return <Icon name="chevron-left" onPress={()=>navigation.goBack()} style={styles.icon}/>; } }) }, ); //定义 StackNavigator 导航跳转 --- end ------ //样式 const styles = StyleSheet.create({ icon:{ fontSize:30, color:'#444', backgroundColor:'transparent' } }); export default Navigator;

indexRout.js:

这个js的内容其实完全可以放在 Navigator 这个里面的  Tab 下面只是我想把它分开,所以分开写了

//工作台路由
export default rout = {
    //固定投资
    fixedInvestList:{
        screen:require('../components/index/fixedInvest/list.js').default,
        navigationOptions:({ navigation }) => ({
            title:'列表页面'
        })
    },
    fixedInvestDetails:{
        screen:require('../components/index/fixedInvest/details.js').default,
        navigationOptions:({ navigation }) => ({
            title:'详情页面'
        })
    }
}

 

图标库的使用 可以看这里  react-native-vector-icons 图标库使用 

posted on 2018-03-20 10:34  浅唱年华1920  阅读(4330)  评论(0编辑  收藏  举报