React Native入门(十)之导航组件React Navigation(2)TabNavi
前言在上一篇博客,了解了React Navigation导航库的StackNavigator的用法,主要用来页面的跳转和标题栏的设置!本篇就来了解一下这个导航库中第二个组件TabNavigator的用法! 使用TabNavigator组件呢,看名字Tab就大致可以知道它是一个标签式的导航组件。这个组件呢在Android和iOS平台有不同的显示效果,而且呢在Android平台默认是在上边,(非常类似TabLayout),在iOS平台是在下边显示! import {TabNavigator} from "react-navigation";//先引入组件
class NewsScreen extends Component {
render() {
return <FlatList
style={{padding: 10}}
data={[{key: '第一条新闻'},{key: '第二条新闻'},{key: '第三条新闻'},{key: '第四条新闻'},{key: '第五条新闻'},]}
renderItem={({item}) => {
return (
<Text style={{padding: 5,fontSize: 15}}>{item.key}</Text>
)
}}
/>
}
}
class VideoScreen extends Component {
render() {
return <Text>视频列表</Text>
}
}
//设置TabNavigator
const MainScreenNavigator = TabNavigator({
新闻: {screen: NewsScreen},视频: {screen: VideoScreen},})
AppRegistry.registerComponent('AwesomeProject',() => MainScreenNavigator );
使用呢,非常简单,首先引入组件,然后写两个Tab页面,然后使用 配置当然,我们在具体使用的时候不会就这么简单的使用默认的样式等内容,我们可以自己配置需要的内容! TabNavigator(RouteConfigs,TabNavigatorConfig)
RouteConfigs路由设置路由设置呢,这里就不再提了,具体的跟前边 StackNavigator中的路由设置配置一样! TabNavigatorConfig标签导航设置
下边的可选项可传递到潜在路由来改变导航逻辑:
tabBarOptions选项在我们自己没有设置 下面是Android平台默认的
好了,上边基本上就是TabNavigator全部的内容了! demo: import {TabNavigator} from "react-navigation";//引入
class NewsScreen extends Component {
render() {
const {navigate} = this.props.navigation;
return <FlatList
style={{padding: 10}}
data={[{key: '第一条新闻'},]}
renderItem={({item}) => {
return (
<TouchableOpacity
activeOpacity={0.5}
//点击列表,跳转页面且传值
onPress={() => navigate('NewsContent',{hello: item.key})}>
<Text style={{padding: 5,fontSize: 15}}>{item.key}</Text>
</TouchableOpacity>
)
}}
/>
}
}
class NewsContentScreen extends Component {
render() {
const {params} = this.props.navigation.state;
return (
<View style={{padding: 10}}>
//得到传递的数据
<Text style={{fontSize: 20,fontWeight: 'bold',alignSelf: 'center'}}>{params.hello}</Text>
<Text>
我是具体的新闻内容!{'n'}
啊啊啊啊啊啊啊啊啊啊啊啊{'n'}
...
</Text>
</View>
);
}
}
class VideoScreen extends Component {
render() {
return <Text>视频列表</Text>
}
}
//设置TabNavigator
const MainScreenNavigator = TabNavigator({
新闻: {screen: NewsScreen},},{
tabBarPosition:'top',//设置位置
tabBarOptions: {
activeTintColor:'firebrick',//设置选中标签颜色
inactiveTintColor:'gray',//设置非选择标签颜色
labelStyle: {//设置标签label样式
fontSize: 15,indicatorStyle:{//设置标签指示器样式
backgroundColor:'firebrick'
},/*tabStyle: { width: 100,//设置每一个tab的宽度,如果不设置则默认均分 },*/
style: {//设置整个tab bar的样式
backgroundColor: 'white',}
});
//设置StackNavigator
const SimpleApp = StackNavigator({
Home: {
screen: MainScreenNavigator,navigationOptions: {
title: '今日头条',//设置导航栏的标题
headerTintColor:'white',//设置header的渲染颜色
/*headerTitleStyle:{ color:'white' //这里和上边设置颜色是一样的,用其中一个即可 },*/
headerStyle:{//设置header的样式
backgroundColor:'firebrick',}
}
},NewsContent: {
screen: NewsContentScreen,navigationOptions: ({navigation}) => ({
title: `${navigation.state.params.hello}`,}),});
AppRegistry.registerComponent('AwesomeProject',() => SimpleApp);
结语本篇文章了解了导航组件库React Navigation中TabNavigator标签组件的使用,并结合上一篇中的StackNavigator写了一个简单的demo。下一篇文章会来了解一下最后一个DrawerNavigator的用法! 好了,先这样,下一篇再见! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |