首先安装:npm install react-native-tab-navigator

      然后再引入文件中

       import TabNavigator from 'react-native-tab-navigator';

举例如下:

    

  1. import React, {Component} from 'react';
  2. import {StyleSheet, View,Text,Image} from 'react-native';
  3. import TabNavigator from 'react-native-tab-navigator'
  4.  
  5. export default class App extends Component<Props> {
  6. /*初始化state*/
  7. constructor(props){
  8. super();
  9. this.state={
  10. selectedTab:'tb_msg',
  11. }
  12. }
  13. /**
  14. * 公共组件方法
  15. * @param selectedTab 选中的tab
  16. * @param title
  17. * @param icon
  18. * @param selectedIcon
  19. * @param imageStyle 选中时渲染图标的颜色
  20. * @param mark 角标
  21. * @param viewContent 页面内容
  22. * @returns {*}
  23. */
  24. tabNavigatorItems(selectedTab,title,icon,selectedIcon,imageStyle,mark,viewContent){
  25. return (
  26. <TabNavigator.Item
  27. selected={this.state.selectedTab === selectedTab }
  28. title={title}
  29. renderIcon={()=> <Image style={styles.myImage} source={icon}/> }
  30. renderSelectedIcon={()=> <Image style={[styles.myImage,{tintColor:imageStyle}]} source={selectedIcon}/> }
  31. badgeText={mark}
  32. onPress={()=> this.setState({selectedTab:selectedTab}) }>
  33. <View style={{flex:1}}><Text>{viewContent}</Text></View>
  34. </TabNavigator.Item>
  35. )
  36. }
  37.  
  38. render() {
  39. return (
  40. <View style={styles.container}>
  41. <TabNavigator>
  42. {this.tabNavigatorItems('tb_msg',"消息",require('./images/msg.png'),require("./images/selected_msg.png"),'#ffe09a',"1","消息页面内容")}
  43. {this.tabNavigatorItems('tb_contacts',"联系人",require('./images/contacts.png'),require("./images/selected_contacts.png"),'#65bb74',"","联系人页面内容")}
  44. {this.tabNavigatorItems('tb_watch',"看点",require('./images/wacth.png'),require("./images/selected_watch.png"),'#6ebef3',"","看点页面内容")}
  45. {this.tabNavigatorItems('tb_dynamic',"动态",require('./images/dynamic.png'),require("./images/selected_dynamic.png"),'#622193',"","动态页面内容")}
  46. </TabNavigator>
  47. </View>
  48. );
  49. }
  50. }
  51.  
  52. const styles = StyleSheet.create({
  53. container: {
  54. flex: 1,
  55. backgroundColor: '#F5FCFF',
  56. },
  57. myImage:{
  58. width:22,
  59. height:22,
  60. }
  61.  
  62. });

下面是组件的属性和描述

  1. TabNavigator props
  2.  
  3. prop default type description
  4. sceneStyle inherited object (style) 场景样式,即Tab页容器的样式,可按Viewstyle设置
  5. tabBarStyle inherited object (style) TabBar的样式,基本也可按照普通的style写法进行设置
  6. tabBarShadowStyle inherited object (style) TabBar阴影的样式,不过对于扁平化的设计,这个属性应该用处不大
  7. hidesTabTouch false boolean bool类型,即是否隐藏Tab按钮的按下效果
  8. TabNavigator.Item props
  9.  
  10. prop default type description
  11. renderIcon none function 即图标,但为function类型,所以这里需要用到Arrow Function
  12. renderSelectedIcon none function 选中状态的图标,非必填,也是function类型
  13. badgeText none string or number Tab右上角的提示文字,可为StringNumber,类似QQTab右上角的消息提示,非必填
  14. renderBadge none function 提示角标渲染方式,function类型,类似render的使用,非必填
  15. title none string 标题,String类型,非必填
  16. titleStyle inherited style 标题样式,style类型,非必填
  17. selectedTitleStyle none style 选中标题样式,style类型,非必填
  18. tabStyle inherited style styling for tab
  19. selected none boolean bool型,是否选中状态,可使用setState进行控制,默认false
  20. onPress none function 即点击事件的回调函数,这里需要控制的是state
  21. allowFontScaling false boolean bool型,是否允许字体缩放,默认false

React Native 底部导航栏的更多相关文章

  1. [RN] React Native 自定义导航栏随滚动渐变

    React Native 自定义导航栏随滚动渐变 实现效果预览: 代码实现: 1.定义导航栏 NavPage.js import React, {Component} from 'react'; im ...

  2. React Native自定义导航栏

    之前我们学习了可触摸组件和页面导航的使用的使用: 从零学React Native之09可触摸组件 - 从零学React Native之03页面导航 - 经过之前的学习, 我们可以完成一个自定义导航栏了 ...

  3. react native底部tab栏切换

    1.安装tab栏插件 npm i react-native-tab-navigator --save 2.引入对应的组件和tab插件 import { Platform, StyleSheet, Te ...

  4. React Native 之导航栏

    一定要参考官网: https://reactnavigation.org/docs/en/getting-started.html 代码来自慕课网:https://www.imooc.com/cour ...

  5. React Native(四)——顶部以及底部导航栏实现方式

    效果图: 一步一步慢慢来: 其实刚入手做app的时候,就应该做出简单的顶部以及底部导航栏.无奈又在忙其他事情,导致这些现在才整理出来. 1.顶部导航栏:react-native-scrollable- ...

  6. React-native 底部导航栏(二)

    1.组件安装:npm install react-native-router-flux --save 2.定义菜单图片和文字: import React, { Component } from 're ...

  7. TextView+Fragment实现底部导航栏

    前言:项目第二版刚上线没多久,产品又对需求进行了大改动,以前用的是左滑菜单,现在又要换成底部导航栏,于是今天又苦逼加班了.花了几个小时实现了一个底部导航栏的demo,然后总结一下.写一篇博客.供自己以 ...

  8. Android应用底部导航栏(选项卡)实例

    现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其 ...

  9. Android 修改底部导航栏navigationbar的颜色

    Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().set ...

随机推荐

  1. spring boot V部落 V人事项目

    公司倒闭 1 年多了,而我在公司倒闭时候做的开源项目,最近却上了 GitHub Trending,看着这个数据,真是不胜唏嘘. 缘起 2017 年 11 月份的时候,松哥所在的公司因为经营不善要关门了 ...

  2. Java缓存技术有哪些

    我们用ehcache在本地,分布式用redis和memcache,各有各的好处,现在企业都是应用很多种中间件供俺们码农选择.

  3. HearthBuddy 第一次调试

    HearthBuddy https://www.jiligame.com/70639.html 解压缩包,打开hearthbuddy.exe直接运行就可以:不用替换mono.dll直接可用:不需要校验 ...

  4. JNI崩溃调试

    JNI崩溃了,系统日志会打印堆栈信息,所以第一步就是取日志 adb shell logcat -v threadtime >>d:/log.txt 然后找到日志里面的关键字backtrac ...

  5. LeetCode 516——最长回文子序列

    1. 题目 2. 解答 与最长回文子串类似,我们可以用动态规划来求解这个问题,只不过这里的子序列可以不连续.我们定义状态 state[i][j] 表示子串 s[i, j] 的最长回文子序列长度,那么状 ...

  6. kernel function

    下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...

  7. 手机端 video 视频自动播放方法

    //创建一个video标签 var __video = $("#video").appendTo('.i-i-video'); //设置视频文件地址 __video.attr('s ...

  8. 使用apicloud开发移动端APP,IOS list页面滚动卡顿解决记录

    给内容容器添加样式:-webkit-overflow-scrolling:touch; -webkit-overflow-scrolling:属性控制元素在移动设备上是否使用滚动回弹效果. auto: ...

  9. MariaDB 连接查询,视图,事物,索引,外键

    1.连接查询 --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name var ...

  10. 6.3.2巴特沃斯(butterworth)低通滤波器

    在本程序中,共有六个自定义函数,分别是: 1. myMagnitude(Mat & complexImg,Mat & magnitudeImage),在该函数中封装了Opencv中的 ...