在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. hadoop2.6完全分布式安装HBase1.1

    本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...

  2. 【读书笔记】iOS网络-运行循环

    运行循环是由类NSRunLoop表示的,有些线程可以让操作系统唤醒睡眠的线程以管理到来的事件,而运行循环则是这些线程的基本组件.运行循环是这样一种循环,可以在一个周期内调度任务并处理到来的事件.iOS ...

  3. 【读书笔记】iOS-引用计数

    Cocoa采用了一种称为引用计数的技术,有时也叫做保留计数.每个对象有一个与之相关联的整数,称作它的引用计数器或保留计数器.当某段代码需要访问一个对象时,该代码将该对象的保留计数器值加1,表示“我要访 ...

  4. iOS 学习 - 5.UILabel设置行距

    NSMutableAttributedString *arrString =[[NSMutableAttributedString alloc]initWithString:@"asdass ...

  5. iOS开发笔记10:圆点缩放动画、强制更新、远程推送加语音提醒及UIView截屏

    1.使用CAReplicatorLayer制作等待动画 CALayer+CABasicAnimation可以制作很多简单的动画效果,之前的博客中介绍的“两个动画”,一个是利用一张渐变色图片+CABas ...

  6. 深入理解java虚拟机(5)---字节码执行引擎

    字节码是什么东西? 以下是百度的解释: 字节码(Byte-code)是一种包含执行程序.由一序列 op 代码/数据对组成的二进制文件.字节码是一种中间码,它比机器码更抽象. 它经常被看作是包含一个执行 ...

  7. angularjs flask跨域问题 XMLHttpRequest cannot load. No 'Access-Control-Allow-Origin'

    场景,我要来我的server(A)上用api来访问另一个server(B)的问题,如果直接在A上调用B的api,那么就会出现XMLHttpRequest cannot load. No 'Access ...

  8. LightSpeed的批量更新和批量删除

    1.Update对于批量操作 无论是Update还是Remove  都是使用LightSpeed的Query对象来完成. 注:Student是要进行Update的表(实体),StuName是表Stud ...

  9. JPA一对多关联

    关于JPA一对多关联这里使用Order与OrderItem来模拟.一个Order可以关联多个OrderItem,而一个OrderItem只能关联一个Order.Order与OrderItem是一对多的 ...

  10. 设计模式C#实现(一)——模板方法模式

    模板方法模式——在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重写定义算法中的某些步骤. 假如我们有两种咖啡因饮料:茶和咖啡.茶的制作过程为: ...