《ReactNative》之底部导航TabNavigator
来源:互联网 发布:电子人单片机开发板 编辑:程序博客网 时间:2024/05/29 16:47
先看下效果吧
1.安装
npm install react-native-tab-navigator -save
2.使用
引入包
import TabNavigator from 'react-native-tab-navigator';
顶部是一个自定义的组件 TitleComponent,使用时引入即可。
代码简单,不作过多解释,直接看代码即可。
完整的代码
import React, { Component } from 'react';import { AppRegistry, Text, View, Navigator, StyleSheet, Image, } from 'react-native';import TitleComponent from './app/comp/home_title';import TabNavigator from 'react-native-tab-navigator';class App extends Component{constructor(props){ super(props); this.state = { selectedTab:'home' }; }render(){return(<View style={{flex:1}}><TitleComponent title="ReactNative"/><TabNavigator tabBarStyle={styles.tab} > <TabNavigator.Item selected={this.state.selectedTab === 'home'} title="首页" titleStyle={styles.app_title} selectedTitleStyle={styles.selectedTabText} renderIcon={() => <Image style={styles.app_img} source={require('./img/home_n.png')} />} renderSelectedIcon={() => <Image style={styles.app_img} source={require('./img/home_p.png')} />} //badgeText="10" onPress={() => this.setState({ selectedTab: 'home'})}> <Page1/> </TabNavigator.Item> <TabNavigator.Item selected={this.state.selectedTab === 'app'} title="应用" renderIcon={() => <Image style={styles.app_img} source={require('./img/app_n.png')} />} renderSelectedIcon={() => <Image style={styles.app_img} source={require('./img/app_p.png')} />} onPress={() => this.setState({ selectedTab: 'app'})}> <Page2/> </TabNavigator.Item> <TabNavigator.Item selected={this.state.selectedTab === 'my'} title="我的" renderIcon={() => <Image style={styles.app_img} source={require('./img/my_n.png')} />} renderSelectedIcon={() => <Image style={styles.app_img} source={require('./img/my_p.png')} />} onPress={() => this.setState({ selectedTab: 'my' })}> <Page3/> </TabNavigator.Item> </TabNavigator> </View>);}}class Page1 extends Component{render(){return(<View style={styles.center}><Text style={{fontSize:20,}}>我是page1</Text></View>);}}class Page2 extends Component{render(){return(<View style={styles.center}><Text style={[{fontSize:20},styles.blue]}>我是page2</Text></View>);}}class Page3 extends Component{render(){return(<View style={styles.center}><Text style={[{fontSize:20},styles.red]}>我是page3</Text></View>);}}const styles=StyleSheet.create({ tab: { height: 54, backgroundColor: '#eee', alignItems: 'center' }, app_img:{ width:30, height:30, }, selectedTabText:{ color:'orange', }, center:{ flex:1, justifyContent:'center', alignItems:'center', }, red:{ color:'#f00', }, blue:{ color:'#00bfff' }});AppRegistry.registerComponent('RN', () => App);
顶部自定义组件完整代码
import React,{Component} from 'react';import {View, Text, Image, StyleSheet, ToastAndroid, TouchableHighlight} from 'react-native';var Dimensions = require('Dimensions');var {width} = Dimensions.get('window');var leftImg;export default class TitleComponent extends Component{ constructor(props){ super(props); } componentWillMount(){ leftImg = require('../../img/menu.png'); } render(){ let leftImg = require('../../img/menu.png'); if(this.props.leftImg==='back'){ leftImg = require('../../img/back_n.png') } return( <View> <Image style={styles.container} source={require('../../img/title_background.png')}> <TouchableHighlight style={styles.leftImg}underlayColor='#f0f0f0' onPress={this.props.back}> <View> <Image style={[styles.img,{marginLeft:10,width:20,height:20,}]}source={leftImg}/> </View> </TouchableHighlight> <View style={styles.titleCenter}> <Text style={styles.text}>{this.props.title}</Text> </View> <View style={styles.rightImg}> </View> </Image> </View> ); }}const styles = StyleSheet.create({ container:{ height:50, width:width, flexDirection:'row', }, leftImg:{ flex:1, justifyContent:'center', alignItems:'center', }, img:{ width:25, height:25, }, rightImg:{ flex:1, }, titleCenter:{ flex:6, justifyContent:'center', alignItems:'center', }, text:{ color:'#fff', fontSize:20, },});
2 0
- 《ReactNative》之底部导航TabNavigator
- ReactNative学习实例(八) 第三方组件TabNavigator底部导航栏
- reactnative tabnavigator
- reactNative底部导航菜单栏实现
- Reactnative 使用React TabNavigator
- ReactNative基础(六)使用react-navigation实现页面导航布局效果(TabNavigator)
- android之底部导航
- 底部导航之BottomNavigationBar
- 底部导航之RadioGroup
- APP之底部导航
- React_Native 再学习3——导航进阶之TabNavigator
- React Native TabNavigator导航
- ReactNative导航
- 底部导航库之AHBottomNavigation
- 底部导航之TabLayout+ViewPager
- 项目之底部导航栏
- reactNative的TabNavigator报错信息
- Accordion 、ViewStack、TabNavigator 导航组件
- 采用ViewHolder模式提高AdapterView显示的效率
- Gallery默认第一项居左解决方案
- JDK中有关23个经典设计模式
- 毕业设计中遇到的问题(cocos2d-x以及C语言服务器)
- Android自定义捕获Application全局异常
- 《ReactNative》之底部导航TabNavigator
- Android播放GIF动画
- win7下安装python 2.7与3.6
- ViewPager实现左右两个屏幕的切换
- coreseek在BSD/Linux下的安装测试
- 反编译Apk得到Java源代码
- 墨墨背单词不能安装,出现“未安裝应用程序”,补充解决办法
- 可左右两侧挤压傍边布局的Android抽屉
- 使用ImageView应该注意的地方