React Native 底部导航栏
首先安装:npm install react-native-tab-navigator
然后再引入文件中
import TabNavigator from 'react-native-tab-navigator';
举例如下:
- import React, {Component} from 'react';
- import {StyleSheet, View,Text,Image} from 'react-native';
- import TabNavigator from 'react-native-tab-navigator'
- export default class App extends Component<Props> {
- /*初始化state*/
- constructor(props){
- super();
- this.state={
- selectedTab:'tb_msg',
- }
- }
- /**
- * 公共组件方法
- * @param selectedTab 选中的tab
- * @param title
- * @param icon
- * @param selectedIcon
- * @param imageStyle 选中时渲染图标的颜色
- * @param mark 角标
- * @param viewContent 页面内容
- * @returns {*}
- */
- tabNavigatorItems(selectedTab,title,icon,selectedIcon,imageStyle,mark,viewContent){
- return (
- <TabNavigator.Item
- selected={this.state.selectedTab === selectedTab }
- title={title}
- renderIcon={()=> <Image style={styles.myImage} source={icon}/> }
- renderSelectedIcon={()=> <Image style={[styles.myImage,{tintColor:imageStyle}]} source={selectedIcon}/> }
- badgeText={mark}
- onPress={()=> this.setState({selectedTab:selectedTab}) }>
- <View style={{flex:1}}><Text>{viewContent}</Text></View>
- </TabNavigator.Item>
- )
- }
- render() {
- return (
- <View style={styles.container}>
- <TabNavigator>
- {this.tabNavigatorItems('tb_msg',"消息",require('./images/msg.png'),require("./images/selected_msg.png"),'#ffe09a',"1","消息页面内容")}
- {this.tabNavigatorItems('tb_contacts',"联系人",require('./images/contacts.png'),require("./images/selected_contacts.png"),'#65bb74',"","联系人页面内容")}
- {this.tabNavigatorItems('tb_watch',"看点",require('./images/wacth.png'),require("./images/selected_watch.png"),'#6ebef3',"","看点页面内容")}
- {this.tabNavigatorItems('tb_dynamic',"动态",require('./images/dynamic.png'),require("./images/selected_dynamic.png"),'#622193',"","动态页面内容")}
- </TabNavigator>
- </View>
- );
- }
- }
- const styles = StyleSheet.create({
- container: {
- flex: 1,
- backgroundColor: '#F5FCFF',
- },
- myImage:{
- width:22,
- height:22,
- }
- });
下面是组件的属性和描述
- TabNavigator props:
- prop default type description
- sceneStyle inherited object (style) 场景样式,即Tab页容器的样式,可按View的style设置
- tabBarStyle inherited object (style) TabBar的样式,基本也可按照普通的style写法进行设置
- tabBarShadowStyle inherited object (style) TabBar阴影的样式,不过对于扁平化的设计,这个属性应该用处不大
- hidesTabTouch false boolean bool类型,即是否隐藏Tab按钮的按下效果
- TabNavigator.Item props:
- prop default type description
- renderIcon none function 即图标,但为function类型,所以这里需要用到Arrow Function
- renderSelectedIcon none function 选中状态的图标,非必填,也是function类型
- badgeText none string or number 即Tab右上角的提示文字,可为String或Number,类似QQ中Tab右上角的消息提示,非必填
- renderBadge none function 提示角标渲染方式,function类型,类似render的使用,非必填
- title none string 标题,String类型,非必填
- titleStyle inherited style 标题样式,style类型,非必填
- selectedTitleStyle none style 选中标题样式,style类型,非必填
- tabStyle inherited style styling for tab
- selected none boolean bool型,是否选中状态,可使用setState进行控制,默认false
- onPress none function 即点击事件的回调函数,这里需要控制的是state
- allowFontScaling false boolean bool型,是否允许字体缩放,默认false
React Native 底部导航栏的更多相关文章
- [RN] React Native 自定义导航栏随滚动渐变
React Native 自定义导航栏随滚动渐变 实现效果预览: 代码实现: 1.定义导航栏 NavPage.js import React, {Component} from 'react'; im ...
- React Native自定义导航栏
之前我们学习了可触摸组件和页面导航的使用的使用: 从零学React Native之09可触摸组件 - 从零学React Native之03页面导航 - 经过之前的学习, 我们可以完成一个自定义导航栏了 ...
- react native底部tab栏切换
1.安装tab栏插件 npm i react-native-tab-navigator --save 2.引入对应的组件和tab插件 import { Platform, StyleSheet, Te ...
- React Native 之导航栏
一定要参考官网: https://reactnavigation.org/docs/en/getting-started.html 代码来自慕课网:https://www.imooc.com/cour ...
- React Native(四)——顶部以及底部导航栏实现方式
效果图: 一步一步慢慢来: 其实刚入手做app的时候,就应该做出简单的顶部以及底部导航栏.无奈又在忙其他事情,导致这些现在才整理出来. 1.顶部导航栏:react-native-scrollable- ...
- React-native 底部导航栏(二)
1.组件安装:npm install react-native-router-flux --save 2.定义菜单图片和文字: import React, { Component } from 're ...
- TextView+Fragment实现底部导航栏
前言:项目第二版刚上线没多久,产品又对需求进行了大改动,以前用的是左滑菜单,现在又要换成底部导航栏,于是今天又苦逼加班了.花了几个小时实现了一个底部导航栏的demo,然后总结一下.写一篇博客.供自己以 ...
- Android应用底部导航栏(选项卡)实例
现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其 ...
- Android 修改底部导航栏navigationbar的颜色
Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().set ...
随机推荐
- spring boot V部落 V人事项目
公司倒闭 1 年多了,而我在公司倒闭时候做的开源项目,最近却上了 GitHub Trending,看着这个数据,真是不胜唏嘘. 缘起 2017 年 11 月份的时候,松哥所在的公司因为经营不善要关门了 ...
- Java缓存技术有哪些
我们用ehcache在本地,分布式用redis和memcache,各有各的好处,现在企业都是应用很多种中间件供俺们码农选择.
- HearthBuddy 第一次调试
HearthBuddy https://www.jiligame.com/70639.html 解压缩包,打开hearthbuddy.exe直接运行就可以:不用替换mono.dll直接可用:不需要校验 ...
- JNI崩溃调试
JNI崩溃了,系统日志会打印堆栈信息,所以第一步就是取日志 adb shell logcat -v threadtime >>d:/log.txt 然后找到日志里面的关键字backtrac ...
- LeetCode 516——最长回文子序列
1. 题目 2. 解答 与最长回文子串类似,我们可以用动态规划来求解这个问题,只不过这里的子序列可以不连续.我们定义状态 state[i][j] 表示子串 s[i, j] 的最长回文子序列长度,那么状 ...
- kernel function
下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...
- 手机端 video 视频自动播放方法
//创建一个video标签 var __video = $("#video").appendTo('.i-i-video'); //设置视频文件地址 __video.attr('s ...
- 使用apicloud开发移动端APP,IOS list页面滚动卡顿解决记录
给内容容器添加样式:-webkit-overflow-scrolling:touch; -webkit-overflow-scrolling:属性控制元素在移动设备上是否使用滚动回弹效果. auto: ...
- MariaDB 连接查询,视图,事物,索引,外键
1.连接查询 --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name var ...
- 6.3.2巴特沃斯(butterworth)低通滤波器
在本程序中,共有六个自定义函数,分别是: 1. myMagnitude(Mat & complexImg,Mat & magnitudeImage),在该函数中封装了Opencv中的 ...