react-navigation,StackNavigator,TabNavigator 导航使用

react

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 图标库使用 

以上是 react-navigation,StackNavigator,TabNavigator 导航使用 的全部内容, 来源链接: utcz.com/z/382765.html

回到顶部