1.安装tab栏插件

  1. npm i react-native-tab-navigator --save

2.引入对应的组件和tab插件

  1. import { Platform, StyleSheet, Text, View,Image } from 'react-native';
  2. import TabNavigator from 'react-native-tab-navigator';

3.复制以下代码到render()函数的return 里

两个图标的地址:

  1. https://raw.githubusercontent.com/knightsj/GitHubPopular-SJ/master/github_client/res/images/ic_polular.png
  2.  
  3. https://raw.githubusercontent.com/knightsj/GitHubPopular-SJ/master/github_client/res/images/ic_trending.png
  1. <View style={styles.container}>
  2. <TabNavigator>
  3. <TabNavigator.Item
  4. selected={this.state.selectedTab === 'home'}
  5. title="最热"
  6. renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
  7. renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
  8. badgeText="1"
  9. onPress={() => this.setState({ selectedTab: 'home' })}>
  10. <View style={styles.page1}></View>
  11. </TabNavigator.Item>
  12. <TabNavigator.Item
  13. selected={this.state.selectedTab === 'profile'}
  14. title="趋势"
  15. renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  16. renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  17. onPress={() => this.setState({ selectedTab: 'profile' })}>
  18. <View style={styles.page2}></View>
  19. </TabNavigator.Item>
  20. <TabNavigator.Item
  21. selected={this.state.selectedTab === 'test'}
  22. title="测试"
  23. renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  24. renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  25. onPress={() => this.setState({ selectedTab: 'test' })}>
  26. <View style={styles.page3}></View>
  27. </TabNavigator.Item>
  28. </TabNavigator>
  29. </View>

4.重新运行 react-native run-android

完整代码:

  1. import React, { Component } from 'react';
  2. import { Platform, StyleSheet, Text, View,Image } from 'react-native';
  3. import TabNavigator from 'react-native-tab-navigator';
  4. const instructions = Platform.select({
  5. ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
  6. android:
  7. 'Double tap R on your keyboard to reload,\n' +
  8. 'Shake or press menu button for dev menu',
  9. });
  10.  
  11. export default class App extends Component {
  12. constructor(props) {
  13. super(props);
  14. this.state = {selectedTab: 'home'};
  15. }
  16. render() {
  17. return (
  18. <View style={styles.container}>
  19. <TabNavigator>
  20. <TabNavigator.Item
  21. selected={this.state.selectedTab === 'home'}
  22. title="最热"
  23. renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
  24. renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_polular.png')} />}
  25. badgeText="1"
  26. onPress={() => this.setState({ selectedTab: 'home' })}>
  27. <View style={styles.page1}></View>
  28. </TabNavigator.Item>
  29. <TabNavigator.Item
  30. selected={this.state.selectedTab === 'profile'}
  31. title="趋势"
  32. renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  33. renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  34. onPress={() => this.setState({ selectedTab: 'profile' })}>
  35. <View style={styles.page2}></View>
  36. </TabNavigator.Item>
  37. <TabNavigator.Item
  38. selected={this.state.selectedTab === 'test'}
  39. title="测试"
  40. renderIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  41. renderSelectedIcon={() => <Image style={styles.image} source={require('./res/images/ic_trending.png')} />}
  42. onPress={() => this.setState({ selectedTab: 'test' })}>
  43. <View style={styles.page3}></View>
  44. </TabNavigator.Item>
  45. </TabNavigator>
  46. </View>
  47.  
  48. );
  49. }
  50. }
  51.  
  52. const styles = StyleSheet.create({
  53. container: {
  54. flex: 1,
  55. backgroundColor: '#F5FCFF',
  56. },
  57. page1: {
  58. flex: 1,
  59. backgroundColor: 'red'
  60. },
  61. page2: {
  62. flex: 1,
  63. backgroundColor: 'yellow'
  64. },
  65. page3: {
  66. flex: 1,
  67. backgroundColor: 'yellowgreen'
  68. },
  69. // react native里不用写单位
  70. image: {
  71. height: 22,
  72. width: 22
  73. }
  74. });

效果:

react native底部tab栏切换的更多相关文章

  1. React Native 底部导航栏

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

  2. Vue(小案例)底部tab栏和顶部title栏的实现

    ---恢复内容开始--- 一.前言 1.底部tab栏实现 2.顶部title栏实现 二.主要内容   1.底部tab栏实现(将底部导航提取到公共的组件中) 具体效果:当点击切换不同的tab的时候,对应 ...

  3. Android自定义控件----RadioGroup实现APP首页底部Tab的切换

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. jQuery带有定时器的tab栏切换

    现在网上很多类似选项卡的切换,我们成为tab栏切换,比如下图: 新浪的tab栏切换 淘宝的tab栏切换 其中,新浪的tab栏鼠标放上去,可以快速的来回切换,但是如果采取ajax异步传输,不停去加载服务 ...

  5. mui底部导航栏切换分页

    使用Hbuilder的mui框架开发移动端非常便利.高效: 底部导航栏切换功能也是移动APP开发中必须实现的: 引入mui文件.下面会用到jquery,同时引进 <link href=" ...

  6. dataTable tab栏切换时错位解决办法

    做后台管理类网站肯定要写列表,首选dataTable,功能强大 最近在做一个tab栏切换时发现了一个很诡异的事情:表头错位了! 主要时因为当table被隐藏后,table的header宽度会计算错乱, ...

  7. Flutter - BottomNavigationBar底部导航栏切换后,状态丢失

    如果你用过BottomNavigationBar.TabBar.还有Drawer,你就会发现,在切换页面之后,原来的页面状态就会丢失. 要是上一页有一个数据列表,很多数据,你滚动到了下头,切换页面后, ...

  8. Flutter实战视频-移动电商-04.底部导航栏切换效果

    04.底部导航栏切换效果 博客地址: https://jspang.com/post/FlutterShop.html#toc-291 我们要做的效果图: 新建四个页面 home_page.dart ...

  9. tab栏切换

    最简单的tab栏切换 html部分 <ul class="tab"> <li class="item">待支付(1)</li> ...

随机推荐

  1. http://ctf.bugku.com/challenges#Easy_Re

      今天做一道逆向题,开心,见证了自己汇编的用途.     首先看它是否加壳? 1.加壳检测   是vc编程的,没有加壳,可以愉快地分析了.   2.分析程序,找到flag.   首先运行一下子程序, ...

  2. 安装routeos

    直接开机,会看到: 选择全部安装即可,按a.i即可. 默认账号admin,默认没有密码 基本使用 可通过/ip,/interface等可以进去不同子功能模块,可进行print,add,remove等操 ...

  3. [剑指Offer]42-连续子数组的最大和(DP)

    题目链接 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&t ...

  4. Java_10 继承

    1 继承的好处 继承的出现提高了代码的复用性,提高软件开发效率. 继承的出现让类与类之间产生了关系,提供了多态的前提. 2 继承的注意事项 在Java中,类只支持单继承,不允许多继承,也就是说一个类只 ...

  5. AngularJS——第7章 依赖注入

    第7章 依赖注入 AngularJS采用模块化的方式组织代码,将一些通用逻辑封装成一个对象或函数,实现最大程度的复用,这导致了使用者和被使用者之间存在依赖关系. 所谓依赖注入是指在运行时自动查找依赖关 ...

  6. activity背景毛玻璃效果

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  7. css兼容性写法大全

    淘宝初始化代码 body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset ...

  8. sqlserver数据库的备份与还原——完整备份与还原

    sqlserver提供四种数据库备份方式 完整备份:备份整个数据库的所有内容包括书屋和日志 差异备份:只备份上次完整备份后更高的数据部分 事务日志备份:只备份事务日志里的内容 文件或文件组备份:只备份 ...

  9. 使用SQL语句创建数据库2——创建多个数据库文件和多个日志文件

    在matser数据库下新建查询,输入的命令如下: USE master GOCREATE DATABASE E_MarketON PRIMARY--主文件组( NAME ='E_Market_data ...

  10. Ubuntu安装UFW防火墙

    sudo apt-get install ufw 一般用户,只需如下设置:sudo apt-get install ufw sudo ufw enable sudo ufw default deny ...