react native 导航
来源:互联网 发布:美国非农数据公布时间一览表 编辑:程序博客网 时间:2024/05/17 01:49
一. 简介
大多数应用都会有导航进行页面切换,React Native原生的控件仅有TabBarIOS可供iOS平台使用,如果想同时适配Android和IOS,最好使用第三方控件,比如:react-native-tab-navigator
地址:https://github.com/exponent/react-native-tab-navigator
二. 使用
(1)安装
在项目根目录下 使用命令行安装 npm install react-native-tab-navigator –save
(2)导入
import TabNavigator from ‘react-native-tab-navigator’;
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, Image, } from 'react-native'; //引入tabbar支持包 import TabNavigator from 'react-native-tab-navigator'; const TabNavigatorItem =TabNavigator.Item; const TAB_NORMAL_1=require('./images/tabbar_1.png'); const TAB_NORMAL_2=require('./images/tabbar_2.png'); const TAB_NORMAL_3=require('./images/tabbar_3.png'); const TAB_NORMAL_4=require('./images/tabbar_4.png'); const TAB_PRESS_1=require('./images/tabbar_1_press.png'); const TAB_PRESS_2=require('./images/tabbar_2_press.png'); const TAB_PRESS_3=require('./images/tabbar_3_press.png'); const TAB_PRESS_4=require('./images/tabbar_4_press.png'); class toutiao extends Component { constructor(){ super(); this.state={ selectedTab:'Home', } } /** tab点击方法 **/ onPress(tabName){ if(tabName){ this.setState( { selectedTab:tabName, } ); } } /** 渲染每项 **/ renderTabView(title,tabName,tabContent,isBadge){ var tabNomal; var tabPress; switch (tabName) { case 'Home': tabNomal=TAB_NORMAL_1; tabPress=TAB_PRESS_1; break; case 'Video': tabNomal=TAB_NORMAL_2; tabPress=TAB_PRESS_2; break; case 'Follow': tabNomal=TAB_NORMAL_3; tabPress=TAB_PRESS_3; break; case 'Mine': tabNomal=TAB_NORMAL_4; tabPress=TAB_PRESS_4; break; default: } return( <TabNavigatorItem title={title} renderIcon={()=><Image style={styles.tabIcon} source={tabNomal}/>} renderSelectedIcon={()=><Image style={styles.tabIcon} source={tabPress}/>} selected={this.state.selectedTab===tabName} selectedTitleStyle={{color:'#f85959'}} onPress={()=>this.onPress(tabName)} renderBadge={()=>isBadge?<View style={styles.badgeView}><Text style={styles.badgeText}>20</Text></View>:null} > <View style={styles.container1}><Text>{tabContent}</Text></View> </TabNavigatorItem> ); } /** 自定义tabbar **/ tabBarView(){ return ( <TabNavigator tabBarStyle={styles.tab} > {this.renderTabView('头条','Home','头条板块',true)} {this.renderTabView('视频','Video','视频板块',false)} {this.renderTabView('关注','Follow','关注板块',false)} {this.renderTabView('我的','Mine','我的板块',false)} </TabNavigator> ); } render() { var tabBarView=this.tabBarView(); return ( <View style={styles.container}> {tabBarView} </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#F5FCFF', }, container1:{ flex:1, justifyContent:'center', alignItems:'center', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, }, tab:{ height: 52, alignItems:'center', backgroundColor:'#f4f5f6', }, tabIcon:{ width:25, height:25, }, badgeView:{ width:22, height:14 , backgroundColor:'#f85959', borderWidth:1, marginLeft:10, marginTop:3, borderColor:'#FFF', alignItems:'center', justifyContent:'center', borderRadius:8, }, badgeText:{ color:'#fff', fontSize:8, } }); // 导出模块module.exports = toutiao;
阅读全文
0 0
- react-native 导航栏
- react native 导航
- React Native TabNavigator导航
- react-native 底部导航
- React Native自定义导航栏
- React-native Navigator导航跳转
- React Native-导航条设置
- React Native自定义导航条
- [React Native]导航器Navigator
- React Native 系列(八) -- 导航
- React Native 系列(八) -- 导航
- React Native导航react-navigation经验浅谈
- React Native底部导航react-native-tab-navigator
- 搜索框和导航栏(React Native)
- react-native试玩(10)-导航栏
- React Native导航Navigator组件基本使用方法
- React Native导航Navigator组件基本使用方法
- [React Native]使用导航器跳转页面
- Android横竖屏切换方法及相应的生命周期变化
- JavaRuntime内存 && Java整数类型和取值范围
- CodeForces
- 利用postman进行接口测试并发送带cookie请求的方法
- Linux学习总结(35)——CentOS 7.X设置服务开机启动
- react native 导航
- SPFA模板
- maven使用教程
- JavaScript对象小基础
- 梯度上升与梯度下降
- C++ primer 读书笔记四
- HTML+CSS编写静态网站-41 上传网站到Github
- Jdbc连接mysql数据库
- 第四封信 / 海风啊为何总是带来哭泣