是一个组合,我把这2个写在一起了

代码:

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:,
marginBottom:
}
}
}else if(IS_ANDROID){
TabSty = {
activeTintColor:'#6b52ae', //活动选项卡的标签和图标颜色。
inactiveTintColor:'#333',//非活动选项卡的标签和图标颜色。
showIcon:true,//是否显示标签图标,默认为false。
pressOpacity:0.1,//按下标签的不透明度
pressColor:'#ccc',//材质纹波的颜色(仅限Android> = 5.0)--按下的水印
tabStyle:{//选项卡的样式对象。
paddingTop:
},
labelStyle:{//标签标签的样式对象
fontSize:,
   margin:
},
//选项卡指示符的样式对象(选项卡底部的行)。
indicatorStyle:{
height:
}
}
}
//标签栏的样式对象。
TabSty.style = {
height:,
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:}}/>
)
}),
},
Nearby:{
screen: require('./components/index/index.js').default,
navigationOptions: ({ navigation }) => ({
title:'工作台',
tabBarLabel: '工作台',
tabBarIcon: ({ tintColor, focused }) => (
<Icon name="home" style={{color:tintColor,fontSize:}}/>
)
}),
},
Message:{
screen: require('./components/index/index.js').default,
navigationOptions: ({ navigation }) => ({
title:'我的',
tabBarLabel: '我的',
tabBarIcon: ({ tintColor, focused }) => (
<Icon name="user" style={{color:tintColor,fontSize:}}/>
)
}),
}
},
{
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:,
textAlign:'center',
   fontWeight:'normal',
   fontSize:,
   color:'#666'
},
headerBackTitle:null,
//返回箭头重写
headerLeft:() => {
return <Icon name="chevron-left" onPress={()=>navigation.goBack()} style={styles.icon}/>;
}
})
},
);
//定义 StackNavigator 导航跳转 --- end ------
//样式
const styles = StyleSheet.create({
icon:{
fontSize:,
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 图标库使用

在定义 底部导航栏的时候 之所以分为 ios  和 android  分开设置 ,是因为 2者的参数 和设置 还是有差别的,只是把  style  标签栏的样式对象,这个属性设置在一起的,具体的可以区看上面

的链接,就能清楚

效果如图

在android ,ios 上效果是一样的

react-navigation,StackNavigator,TabNavigator 导航使用的更多相关文章

  1. React native中DrawerNavigator,StackNavigator,TabNavigator导航栏使用

    import React from 'react'; import { View, Text,Button } from 'react-native'; import { DrawerNavigato ...

  2. Facebook力推导航库:React Navigation使用详解

    本文来自Songlcy投稿:文章地址:http://blog.csdn.net/u013718120/article/details/72357698 一.开源库介绍 今年1月份,新开源的react- ...

  3. React-native 导航插件React Navigation 4.x的使用

    React-native 导航插件React Navigation 4.x的使用 文档 英文水平可以的话,建议直接阅读英文文档 简单使用介绍 安装插件 yarn add react-navigatio ...

  4. React Navigation / React Native Navigation 多种类型的导航结合使用,构造合理回退栈

    React Navigation 更新到版本5已经是非常完善的一套导航管理组件, 提供了Stack , Tab , Drawer 导航方式 , 那么我们应该怎样设计和组合应用他们来构建一个完美的回退栈 ...

  5. React Native 系列(八) -- 导航

    前言 本系列是基于React Native版本号0.44.3写的.我们都知道,一个App不可能只有一个不变的界面,而是通过多个界面间的跳转来呈现不同的内容.那么这篇文章将介绍RN中的导航. 导航 什么 ...

  6. react-native 学习 ----- React Navigation

    很久没有的登陆博客园了,密码都是找回的,从当年的大学生已经正常的走上了程序员的道路,看到之前发的博客还是写的android,现在自己已经在使用了react-native了. 大学毕业了,做了java后 ...

  7. react-native导航器 react navigation 介绍

    开发环境搭建好之后,想要进一步了解react-native,可以先从react-native官网上的电影列表案例入手: https://reactnative.cn/docs/0.51/sample- ...

  8. [RN] 04 - React Navigation

    react-navigation和react-router的对比: 支持的平台: react-navigation: react-native react-router: react-native.r ...

  9. React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方

    以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation  react-native ...

随机推荐

  1. Javascript中变量提升的问题(五)

    一.函数声明变量提升   函数声明具有变量提升的问题,所以在函数被声明之前就可以访问. console.log(getValue()); function getValue() { return 'a ...

  2. MyBatis 手动映射结果集

    MyBatis可以自动将查询结果封装到bean中,前提条件是bean的属性名和查询的结果列名相同,就会一次对应存储. 如果查询结果的列名和bean的属性名不一致,则需要手动映射结果集 <!-- ...

  3. go语言学习--指针数组和数组指针

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...

  4. 经典算法冒泡排序java版

    写个冒泡排序吧 冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序. public class BubbleSort{ public int[] bubbleS ...

  5. Jmeter(四十三)WebSocket Sampler 和 Ajax Request

     权利被放出牢笼,就很难再被关入笼中:奴性被唤出来,腰杆和膝盖很难再直起来. ----宅猪<牧神记> websocket: 参考:https://blog.csdn.net/minmint ...

  6. SCCM2012 R2实战系列之十二:解决OSD分发时间过长的问题

    对于SCCM 2012 R2的初学者来说,能够成功分发操作系统可能已经是非常兴奋了.但在企业中会遇到客户提出的各种各样苛刻的需求.所以在平时实验过程中多站点客户的角度想问题,尽可能的贴近企业实际生产环 ...

  7. UI相关教程:HUD、UMG和Widget

    转自:http://aigo.iteye.com/blog/2258612 蓝图脚本来处理 ================================================== 用UM ...

  8. postgresql定位分析消耗CPU高的SQL语句

    第一步:使用TOP命令查看占用CPU高的postgresql进程,并获取该进程的ID号,如图该id号为3640 第二步:切换到postgres用户,并且psql连接到数据库,执行如下查询语句 SELE ...

  9. 集群Redis使用 Python pipline大批量插入数据

    class myRedis(object):     def __init__(self,redis_type=None,**args):         if redis_type == " ...

  10. Java集合类分析,初始化

    Java集合是常用的数据类型,在此详细分析接口和实现类.整个集合框架就围绕一组标准接口而设计,学习集合框架有助开发实践. 框架体系图 1.Collection 接口Collection 是最基本的集合 ...