安装配置请看:

react-navigation 3.x版本的安装以及react-native-gesture-handler配置

2.0以前版本:

  • StackNavigator - 一次只渲染一个页面,并提供页面之间跳转的方法。 当打开一个新的页面时,它被放置在堆栈的顶部
  • TabNavigator - 渲染一个Tab选项卡,让用户可以在几个Tab页面之间切换
  • DrawerNavigator - 提供一个从屏幕左侧滑入的抽屉,类似bilibili和QQ的隐藏在左侧的内容栏功能

新版本:

  StackNavigator  --> createStackNavigator

  TabNavigator  --> createBottomTabNavigator 也可以使用

  createStackNavigator  返回的结果需要再用createAppContainer包裹  const MainNavigator = createAppContainer(stackNavigator );

const TabBar = createBottomTabNavigator(
{
// 1:
one: {
screen: FirstPage,
navigationOptions: () => ({
tabBarIcon: ({ tintColor, focused }) => (
<MaterialCommunityIcons name="star-face" size={35} color={tintColor} />
)
})
},
//2:
two: {
screen: TwoPage,
navigationOptions: () => ({
tabBarIcon: ({ tintColor, focused }) => (
<MaterialCommunityIcons name="star-circle-outline" size={35} color={tintColor} />
)
})
},
//+:
plus: {
screen: PlusPage,
navigationOptions: () => ({
tabBarIcon: ({ tintColor, focused }) => (
focused ? <Ionicons name='md-add' size={45} color={focused ? '#fb7299' : '#999'}/>
:
<Ionicons name='md-add' size={45} color={focused ? '#fb7299' : '#999'}/>
)
})
},
// 3:
three: {
screen: ThreePage,
navigationOptions: () => ({
tabBarIcon: ({ tintColor, focused }) => (
<Ionicons name="ios-color-filter" size={35} color={tintColor} />
)
})
},
//4:
four: {
screen: FourPage,
navigationOptions: () => ({
tabBarIcon: ({ tintColor, focused }) => (
<MaterialCommunityIcons onPress={() => {alert(tintColor)}} name="account-outline" size={35} color={tintColor} />
)
})
}
},
{
initialRouteName: 'one', // 初始化页面
//tabBarComponent: CustomTabBar,
tabBarOptions: {
activeTintColor: '#fb7299',
inactiveTintColor: '#999'
}
} const StackNavigator = createStackNavigator(
{
MainTab: { //路由
screen: TabBar,
navigationOptions: {
header: null,
}
}
},
{
initialRouteName: "MainTab"
}
); const MainNavigator = createAppContainer(StackNavigator); export default class MainComponent extends Component {
constructor(props) {
super(props);
this.state = {};
} render() {
return (
<View style={{flex: 1}}>
<MainNavigator />
</View>
);
}
}

react-navigation 3.x版本的使用的更多相关文章

  1. React Navigation / React Native Navigation 多种类型的导航结合使用,构造合理回退栈

    React Navigation 更新到版本5已经是非常完善的一套导航管理组件, 提供了Stack , Tab , Drawer 导航方式 , 那么我们应该怎样设计和组合应用他们来构建一个完美的回退栈 ...

  2. react-native 学习 ----- React Navigation

    很久没有的登陆博客园了,密码都是找回的,从当年的大学生已经正常的走上了程序员的道路,看到之前发的博客还是写的android,现在自己已经在使用了react-native了. 大学毕业了,做了java后 ...

  3. React Native 0.50版本新功能简介

    React Native在2017年经历了众多版本的迭代,从接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移动跨平台方案.虽然,目前存在着很多的功能和性 ...

  4. [RN] 04 - React Navigation

    react-navigation和react-router的对比: 支持的平台: react-navigation: react-native react-router: react-native.r ...

  5. React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方

    以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation  react-native ...

  6. Facebook力推导航库:React Navigation使用详解

    本文来自Songlcy投稿:文章地址:http://blog.csdn.net/u013718120/article/details/72357698 一.开源库介绍 今年1月份,新开源的react- ...

  7. React-native 导航插件React Navigation 4.x的使用

    React-native 导航插件React Navigation 4.x的使用 文档 英文水平可以的话,建议直接阅读英文文档 简单使用介绍 安装插件 yarn add react-navigatio ...

  8. react navigation goBack()返回到任意页面(不集成redux) 一

    方案一: 一.适用场景:在app端开发的时候,相反回到某一个页面的时候保持跳转页面的所有状态不更新,也就是说不触发新的生命周期. 例如:A——>B——>C——>D 要想从D页面直接返 ...

  9. react-native导航器 react navigation 介绍

    开发环境搭建好之后,想要进一步了解react-native,可以先从react-native官网上的电影列表案例入手: https://reactnative.cn/docs/0.51/sample- ...

  10. React Navigation & React Native & React Native Navigation

    React Navigation & React Native & React Native Navigation React Navigation https://facebook. ...

随机推荐

  1. Android sdk 更新后编译不过,【Could not find com.android.sdklib.build.ApkBuilderMain】

    最近更新了Android sdk,发现编译不过了 解决方案: 进入 sdk/tool/lib/ 目录下,看看有没有 sdklib.jar 这个文件,如果没有看看有没有sdklib-25.*.*.jar ...

  2. springmvc的表单标签

    1. Spring提供的轻量级标签库 2.可在JSP页面中渲染HTML元素的标签 3 用法 1)必须在JSP页面的开头处声明taglib指令 <%@ taglib prefix="fm ...

  3. UML图 之 活动图 (汇总版)

    ============================================================ 摘自: https://blog.csdn.net/tigaoban/arti ...

  4. ubuntu 通过ssh上传/下载服务器文件

    1.用ssh登录远程ubuntu主机 (主机ip为:1.2.3.4;用户名:username) ssh username@1.2.3.4 2.从远程ubuntu主机copy文件/文件夹到本地(scp) ...

  5. CH1812 生日礼物

    题意 描述 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, ..., AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物.ftiasch想要知道选 ...

  6. 选择合适的项目-任务管理工具Jira Redmine Trac对比

    1.团队开发时,需要一些项目-任务管理工具来分配和控制项目进度状态. 2.可选的项目管理工具有: Jira 收费 自带数据库,可配置mysql 功能强大(支持插件) 易用 Java 性能高 复杂 ht ...

  7. windows server 2012 AD 域和站点部署系列

    http://blog.csdn.net/ronsarah/article/category/1495599 http://blog.csdn.net/david_520042/article/cat ...

  8. 华硕主板P8H61(P8H61-M_LX3_PLUS_R2.0)成功禁用USB口

    公司大批这个型号的主板,在百度上搜索了一下,其中有一篇帖子说华硕客服说这个型号的USB控制XX是集成成南桥上面没法禁止. 经过研究发现官网上的0802版可以支持禁止usb,并且可以根据需要为每一个US ...

  9. HQL语句:三表查询(一对多,一对多)

    实体类:CrmDepartment package com.learning.crm.department.domain; import java.util.HashSet; import java. ...

  10. C# 通过二进制,将多个文件合并为一个。

    C# 通过二进制,将多个文件合并为一个. /// <summary> /// 合并文件 /// </summary> /// <param name="strD ...