react native底部tab栏切换
1.安装tab栏插件
- npm i react-native-tab-navigator --save
2.引入对应的组件和tab插件
- import { Platform, StyleSheet, Text, View,Image } from 'react-native';
- import TabNavigator from 'react-native-tab-navigator';
3.复制以下代码到render()函数的return 里
两个图标的地址:
- https://raw.githubusercontent.com/knightsj/GitHubPopular-SJ/master/github_client/res/images/ic_polular.png
- https://raw.githubusercontent.com/knightsj/GitHubPopular-SJ/master/github_client/res/images/ic_trending.png
- <View style={styles.container}>
- <TabNavigator>
- <TabNavigator.Item
- selected={this.state.selectedTab === 'home'}
- title="最热"
- renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
- renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
- badgeText="1"
- onPress={() => this.setState({ selectedTab: 'home' })}>
- <View style={styles.page1}></View>
- </TabNavigator.Item>
- <TabNavigator.Item
- selected={this.state.selectedTab === 'profile'}
- title="趋势"
- renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- onPress={() => this.setState({ selectedTab: 'profile' })}>
- <View style={styles.page2}></View>
- </TabNavigator.Item>
- <TabNavigator.Item
- selected={this.state.selectedTab === 'test'}
- title="测试"
- renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- onPress={() => this.setState({ selectedTab: 'test' })}>
- <View style={styles.page3}></View>
- </TabNavigator.Item>
- </TabNavigator>
- </View>
4.重新运行 react-native run-android
完整代码:
- import React, { Component } from 'react';
- import { Platform, StyleSheet, Text, View,Image } from 'react-native';
- import TabNavigator from 'react-native-tab-navigator';
- const instructions = Platform.select({
- ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
- android:
- 'Double tap R on your keyboard to reload,\n' +
- 'Shake or press menu button for dev menu',
- });
- export default class App extends Component {
- constructor(props) {
- super(props);
- this.state = {selectedTab: 'home'};
- }
- render() {
- return (
- <View style={styles.container}>
- <TabNavigator>
- <TabNavigator.Item
- selected={this.state.selectedTab === 'home'}
- title="最热"
- renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
- renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
- badgeText="1"
- onPress={() => this.setState({ selectedTab: 'home' })}>
- <View style={styles.page1}></View>
- </TabNavigator.Item>
- <TabNavigator.Item
- selected={this.state.selectedTab === 'profile'}
- title="趋势"
- renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- onPress={() => this.setState({ selectedTab: 'profile' })}>
- <View style={styles.page2}></View>
- </TabNavigator.Item>
- <TabNavigator.Item
- selected={this.state.selectedTab === 'test'}
- title="测试"
- renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
- onPress={() => this.setState({ selectedTab: 'test' })}>
- <View style={styles.page3}></View>
- </TabNavigator.Item>
- </TabNavigator>
- </View>
- );
- }
- }
- const styles = StyleSheet.create({
- container: {
- flex: 1,
- backgroundColor: '#F5FCFF',
- },
- page1: {
- flex: 1,
- backgroundColor: 'red'
- },
- page2: {
- flex: 1,
- backgroundColor: 'yellow'
- },
- page3: {
- flex: 1,
- backgroundColor: 'yellowgreen'
- },
- // react native里不用写单位
- image: {
- height: 22,
- width: 22
- }
- });
效果:
react native底部tab栏切换的更多相关文章
- React Native 底部导航栏
首先安装:npm install react-native-tab-navigator 然后再引入文件中 import TabNavigator from 'react-native-tab ...
- Vue(小案例)底部tab栏和顶部title栏的实现
---恢复内容开始--- 一.前言 1.底部tab栏实现 2.顶部title栏实现 二.主要内容 1.底部tab栏实现(将底部导航提取到公共的组件中) 具体效果:当点击切换不同的tab的时候,对应 ...
- Android自定义控件----RadioGroup实现APP首页底部Tab的切换
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- jQuery带有定时器的tab栏切换
现在网上很多类似选项卡的切换,我们成为tab栏切换,比如下图: 新浪的tab栏切换 淘宝的tab栏切换 其中,新浪的tab栏鼠标放上去,可以快速的来回切换,但是如果采取ajax异步传输,不停去加载服务 ...
- mui底部导航栏切换分页
使用Hbuilder的mui框架开发移动端非常便利.高效: 底部导航栏切换功能也是移动APP开发中必须实现的: 引入mui文件.下面会用到jquery,同时引进 <link href=" ...
- dataTable tab栏切换时错位解决办法
做后台管理类网站肯定要写列表,首选dataTable,功能强大 最近在做一个tab栏切换时发现了一个很诡异的事情:表头错位了! 主要时因为当table被隐藏后,table的header宽度会计算错乱, ...
- Flutter - BottomNavigationBar底部导航栏切换后,状态丢失
如果你用过BottomNavigationBar.TabBar.还有Drawer,你就会发现,在切换页面之后,原来的页面状态就会丢失. 要是上一页有一个数据列表,很多数据,你滚动到了下头,切换页面后, ...
- Flutter实战视频-移动电商-04.底部导航栏切换效果
04.底部导航栏切换效果 博客地址: https://jspang.com/post/FlutterShop.html#toc-291 我们要做的效果图: 新建四个页面 home_page.dart ...
- tab栏切换
最简单的tab栏切换 html部分 <ul class="tab"> <li class="item">待支付(1)</li> ...
随机推荐
- http://ctf.bugku.com/challenges#Easy_Re
今天做一道逆向题,开心,见证了自己汇编的用途. 首先看它是否加壳? 1.加壳检测 是vc编程的,没有加壳,可以愉快地分析了. 2.分析程序,找到flag. 首先运行一下子程序, ...
- 安装routeos
直接开机,会看到: 选择全部安装即可,按a.i即可. 默认账号admin,默认没有密码 基本使用 可通过/ip,/interface等可以进去不同子功能模块,可进行print,add,remove等操 ...
- [剑指Offer]42-连续子数组的最大和(DP)
题目链接 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&t ...
- Java_10 继承
1 继承的好处 继承的出现提高了代码的复用性,提高软件开发效率. 继承的出现让类与类之间产生了关系,提供了多态的前提. 2 继承的注意事项 在Java中,类只支持单继承,不允许多继承,也就是说一个类只 ...
- AngularJS——第7章 依赖注入
第7章 依赖注入 AngularJS采用模块化的方式组织代码,将一些通用逻辑封装成一个对象或函数,实现最大程度的复用,这导致了使用者和被使用者之间存在依赖关系. 所谓依赖注入是指在运行时自动查找依赖关 ...
- activity背景毛玻璃效果
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- css兼容性写法大全
淘宝初始化代码 body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset ...
- sqlserver数据库的备份与还原——完整备份与还原
sqlserver提供四种数据库备份方式 完整备份:备份整个数据库的所有内容包括书屋和日志 差异备份:只备份上次完整备份后更高的数据部分 事务日志备份:只备份事务日志里的内容 文件或文件组备份:只备份 ...
- 使用SQL语句创建数据库2——创建多个数据库文件和多个日志文件
在matser数据库下新建查询,输入的命令如下: USE master GOCREATE DATABASE E_MarketON PRIMARY--主文件组( NAME ='E_Market_data ...
- Ubuntu安装UFW防火墙
sudo apt-get install ufw 一般用户,只需如下设置:sudo apt-get install ufw sudo ufw enable sudo ufw default deny ...