在react   native  中底部按钮的切换  主要的是运用的是

第一种方法:<TabBarNavigator/>这个组件,具体的代码实现如下:

  render() {
return (
<TabBarNavigator
navTintColor='#fff'
navBarTintColor='#333'
tabTintColor='#649F0C'
tabBarTintColor='#f0f0f0'>
<TabBarNavigator.Item title='最新' defaultTab icon={require('image!newest')}>
<HomePage />
</TabBarNavigator.Item>
<TabBarNavigator.Item title='往期' icon={require('image!old')}>
<HistoryPage />
</TabBarNavigator.Item>
<TabBarNavigator.Item title='搜索' icon={require('image!search')}>
<SearchPage />
</TabBarNavigator.Item>
<TabBarNavigator.Item title='我的' icon={require('image!my')}>
<MinePage />
</TabBarNavigator.Item>
<TabBarNavigator.Item title='我的' icon={require('image!my')}>
<MinePage />
</TabBarNavigator.Item>
</TabBarNavigator>
)
}

需要注意的是:小编到现在还不知道底端按钮点击是变色是怎么设置的,还没有找到相应的代码,系统默认是变成蓝色

另一种实现方法, 参考 http://www.oschina.net/translate/going-native-with-react

第二种方法,是运用组件<TabNavigator>

1、首先当然是在项目中装入插件

react-native-tab-navigator, 安装代码 npm install react-native-tab-navigator --save

2、创建component  时,先初始化按钮的默认的颜色与点击后的颜色

   static defaultProps={
selectedColor:'#1683FB',
narmalColor:'#a9a9a9'
};

3、其次设置按钮的name

constructor (props){
super(props);
this.state={
selectedTab:'home',
tabName:['标题','标题','标题','标题']
}
}

4、核心代码:

  render() {
const {tabName} = this.state;
return(
<TabNavigator
hidesTabTouch ={true}
tabBarStyle={styles.tabbar}
scenceStyle={styles.scence} >
<TabNavigator.Item
tabStyle={styles.tabStyle}
title={tabName[0]}
selected={this.state.selectedTab==='home'}
selectedTitleStyle={{color:"#1683FB"}}
renderIcon={()=><Image style={styles.tab} source={ require('../img/iconfont-qiandao.png')} />}
onPress={()=> this.setState({selectedTab:'home'})}>
{<Home/>}
</TabNavigator.Item> <TabNavigator.Item
tabStyle={styles.tabStyle}
title={tabName[1]}
selected={this.state.selectedTab==='compass'}
selectedTitleStyle={{color:"#1683FB"}}
renderIcon={()=><Image style={styles.tab} source={ require('../img/iconfont-qiandao.png')} />}
onPress={()=> this.setState({selectedTab:'compass'})}
>
{<Text>标题2</Text>}
</TabNavigator.Item> <TabNavigator.Item
tabStyle={styles.tabStyle}
title={tabName[2]}
selected={this.state.selectedTab==='notification'}
selectedTitleStyle={{color:"#1683FB"}}
renderIcon={()=><Image style={styles.tab} source={ require('../img/iconfont-qiandao.png')} />}
onPress={()=> this.setState({selectedTab:'notification'})}
>
{<Text>标题3</Text>}
</TabNavigator.Item> <TabNavigator.Item
tabStyle={styles.tabStyle}
title={tabName[3]}
selected={this.state.selectedTab==='me'}
selectedTitleStyle={{color:"#1683FB"}}
renderIcon={()=><Image style={styles.tab} source={ require('../img/iconfont-qiandao.png')} />}
onPress={()=> this.setState({selectedTab:'me'})}
>
{<Text>标题4</Text>}
</TabNavigator.Item>
</TabNavigator>
);
}
}

react native 底部按钮切换的更多相关文章

  1. Android控件Gridview实现仿支付宝首页,Fragment底部按钮切换和登录圆形头像

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...

  2. react native底部tab栏切换

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

  3. flutter 底部按钮切换页面

    界面如图: 我们就从上节里面的app.dartt修改 目录:lib lib/story 其它两个目录一样. 图片配置一下 app.dart import 'package:flutter/materi ...

  4. React Native 底部导航栏

    首先安装:npm install react-native-tab-navigator   然后再引入文件中    import TabNavigator from 'react-native-tab ...

  5. React Native(十一)——按钮重复点击事件的处理

    最初开始做后台管理系统的时候,就曾遇到过这样一种场景:"快速点击确认按钮,就会对此触发确认事件,导致多次请求数据库":于是最终我们得当的通过处理那个确认button,解决了上述问题 ...

  6. React Native 简介:用 JavaScript 搭建 iOS 应用(2)

    [编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...

  7. 深入浅出React Native 2: 我的第一个应用

    这是深入浅出React Native教程的第二篇文章. 1. 环境配置 React Native环境配好之后,就可以开始创建我们的第一个App啦. 打开控制台,输入 react-native init ...

  8. [RN] React Native 下实现底部标签(支持滑动切换)

    上一篇文章 [RN] React Native 下实现底部标签(不支持滑动切换) 总结了不支持滑动切换的方法,此篇文章总结出 支持滑动 的方法 准备工作之类的,跟上文类似,大家可点击上文查看相关内容. ...

  9. [RN] React Native FlatList跳转到顶部/底部

    React Native FlatList跳转到顶部/底部 核心代码如下: <ScrollView showsVerticalScrollIndicator={false} contentCon ...

随机推荐

  1. Android源码分析之SparseArray

    本来接下来应该分析MessageQueue了,可是我这几天正好在实际开发中又再次用到了SparseArray(之前有用到过一次,那次只是 大概浏览了下源码,没做深入研究),于是在兴趣的推动下,花了些时 ...

  2. iOS 秒数转换成时间,时,分,秒

    //转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds = totalSeconds % 60;     int min ...

  3. iOSQuartz2D-02-绘制炫酷的下载进度条

    效果图 实现思路 要实现绘图,通常需要自定义一个UIView的子类,重写父类的- (void)drawRect:(CGRect)rect方法,在该方法中实现绘图操作 若想显示下载进度,只需要实例化自定 ...

  4. 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型

    一.前言 最近在工作上用到了一个静态方法,跟同事交流的时候,被一个问题给问倒了,只怪基础不扎实... 问题大致是这样的,“在多线程环境下,静态方法中的局部变量会不会被其它线程给污染掉?”: 我当时的想 ...

  5. SQLServer中char与varchar的区别

    今天写一个项目的用户登录部分 刚开始做,所以是数据库和程序一起写 一开始没注意 在定义表T_Person时吧PerID和PerPwd的类型设定都是char(20) 并且写入了几个数据,诸如 id:01 ...

  6. 【Other】U盘FAT32转NTFS且无数据丢失

    序: 做了一个U盘启动盘后发现文件系统格式为FAT32.这种格式支持单个文件最大4G,超过4G就无法拷贝了.为了防止以后突发情况所以提前把FAT32转换成NTFS.为避免导入导出数据最简单的方法利用D ...

  7. 匿名PL/SQL

    立此存照 匿名PL/SQL 语法结构:PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL程序包含了一个或多个逻辑块,每一块都可以划分3个部分.变量在使用前必须声明,P ...

  8. 大数据公益课堂成就你高薪之梦,30W,50W,100W...

    从之前的知道“大数据”这词,到2013年正式开始了解大数据领域,再到2014年深入研究大数据相关的领域,到现在逐渐影响周围的同学.朋友和家人.大数据技术将给我们带来的远不止我们想到的这些.曾经我身边的 ...

  9. spring 容器加载完成后执行某个方法

    理论 刚好再开发过程中遇到了要在项目启动后自动开启某个服务,由于使用了spring,我在使用了spring的listener,它有onApplicationEvent()方法,在Spring容器将所有 ...

  10. POj3104 Drying(二分)

    Drying Time Limit: 2000MS Memory Limit: 65536K Description It is very hard to wash and especially to ...