一、前言:

  react-navigation  3.x 版本中, 使用createDrawerNavigator 替换 原先的DrawerNavigator 方法;

  那么,当前createBottomTabNavigator、createStackNAvigator、createDrawerNavigator、createSwitchNavigator四兄弟齐全;

  无论使用哪一个,或者使用一个包含另一个,他们都有最终的“爸爸”——createAppContainer。

二、react-navigation 延伸

  • createStackNAvigator —— StackActions
  • createDrawerNavigator —— DrawerActions
  • createSwitchNavigator —— SwitchActions

  StackActions、DrawerActions、SwitchActions都是对应create方法的;

  而且都三者都扩展了 NavigationActions 中的方法

三、使用分析

const MainDrawer = createDrawerNavigator({
MainStack: MainStack,
},{
order: ['MainStack'],
initialRouteName: 'MainStack',
drawerLockMode: 'locked-closed',
drawerWidth: width*0.75,
drawerPosition: 'left',
useNativeAnimations: true,
overlayColor: 'rgba(0,0,0,0.6)',
contentComponent: (props) => <CustomDrawerComponent {...props} />,
contentOptions: {
activeTintColor: '#fb7299',
activeBackgroundColor: '#ccc',
inactiveTintColor: 'balck',
}
})
  • initialRouteName -第一次加载时初始选项卡路由的 routeName。
  • order -定义选项卡顺序的 routeNames 数组。
  • drawerWidth - 定义抽屉的宽度,一般使用屏宽的百分比。
  • drawerPosition - 可选值: left 或 right, 默认值: left
  • contentComponent -用于呈现抽屉内容 (例如, 导航项) 的组件。可以完全使用自定义组件 。
  • useNativeAnimations - 使用原生动画, 默认值: true
  • drawerBackgroundColor - 使用抽屉背景色, 默认值:white
  • contentOptions -配置抽屉内容, 请参阅下面。
    • items - 路由数组,可以修改或覆盖
    • activeItemKey - 识别活动路线的关键字
    • activeTintColor -活动选项卡的标签和图标颜色。
    • activeBackgroundColor -活动选项卡的背景色。
    • inactiveTintColor -"非活动" 选项卡的标签和图标颜色。
    • inactiveBackgroundColor -非活动选项卡的背景色。
    • onItemPress (路由) -按下某项时调用的函数
    • itemsContainerStyle -内容节的样式对象
    • itemStyle 样式对象的单个项, 可以包含图标和/或标签
    • labelStyle 样式对象要覆盖 文本 样式内部内容部分, 当您的标签是一个字符串
    • activeLabelStyle 样式对象若要改写活动标签的 文本 样式, 则标签为字符串 (合并使用 labelStyle)
    • inactiveLabelStyle 样式对象在标签为字符串时覆盖 文本 样式的非活动标签 (与 labelStyle 合并)
    • iconContainerStyle - 用于覆盖View图标容器样式的样式对象。
  • overlayColor - 可以修改抽屉剩余部分的背景色。
  • drawerLockMode - 指定抽屉的锁定模式,'unlocked', 'locked-closed, 'locked-open'。


四,注意点

1. useNativeAnimations 需要设置为 true,否则抽屉的动画会很生涩;

2. overlayColor 可以修改抽屉剩余部分的颜色,因为自带透明度,所以仅仅修改颜色不能修改透明的,但是我们可以通过 rgba(0,0,0,0.x) 来达到效果

3. drawerLockMode - 指定抽屉的锁定模式,

  • 'unlocked', 表示无锁状态,可以通过手势或代码,打开关闭抽屉 
  • 'locked-closed, 表示抽屉是关闭状态时,不能通过手势打开,只能通过代码
  • 'locked-open',表示抽屉是打开状态时,不能通过手势关闭,只能通过代码

4. 代码 打开和关闭抽屉的方法:

  • this.props.navigation.openDrawer(); 可以打开抽屉
  • this.props.navigation.closeDrawer(); 可以关闭抽屉
  • this.props.navigation.toggleDrawer(); 可以打开/关闭抽屉

react-navigation 的抽屉效果 createDrawerNavigator (DrawerNavigator)的更多相关文章

  1. C# WPF抽屉效果实现(C# WPF Material Design UI: Navigation Drawer & PopUp Menu)

    时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...

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

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

  3. [RN] 04 - React Navigation

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

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

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

  5. 浅谈DrawerLayout(抽屉效果)

    DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果. 实现效果如下: 因为是官方提供的,所以使用起来也相对的比较简单. DrawerLayout 提供 1.当界面弹出的时候,主要内容区会 ...

  6. Android 抽屉效果的导航菜单实现

    Android 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...

  7. Android 抽屉效果

    昨天在用“酷我音乐”听歌的时候注意到了界面右上角的四角方块,当我点击这个方块的时候会从屏幕的左边弹出新的界面而把原来的界面挤到左边,是显示了一小部分. 于是,我便在网上查询了一下相关的文章,现将这种效 ...

  8. 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)

    在做谷歌电子市场的时候用的是DrawerLayout实现的抽屉效果,在新闻客户端的时候用的是开源框架SlidingMenu来实现的,总的来说,各有个的优点,侧滑(开源框架)实现的效果更好,但是Draw ...

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

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

随机推荐

  1. Nginx目录文件列表显示

    项目中使用了tomcat,Nginx,测试阶段,生产阶段经常会有些bug需要调查.需要有些日志管理工具,在没有ELK的情况下,可以通过配置nginx来实现基本的日常查看.不需要登录到Linux服务器上 ...

  2. Lucene创建索引和索引的基本检索(Lucene 之 Hello World)

    Author: 百知教育 gaozhy  注:演示代码所使用jar包版本为 lucene-xxx-5.2.0.jar 一.lucene索引操作 1.创建索引代码 try { // 1. 指定索引文件存 ...

  3. 微信小程序怎么获取page/index/main后面的参数

    请求例子:page/index/main?id=123,如何获取123? mpvue框架在onLoad(options)函数里面获取options.id即可. 用的框架不同,onLoad的函数不同.原 ...

  4. 【深入学习linux】在linux系统下怎么编写c语言程序并运行

    1. 首先安装下 gcc : centos yum -y gcc 2. 编写c程序保存hello.c: #include <stdio.h> #include <stdlib.h&g ...

  5. cesium地形瓦片(Quantized-mesh)格式

    目录 1.切片规则 2.瓦片格式分析 2.1.数据头部 2.顶点数据 2.3.索引数据 2.4.扩展数据 参考资料: quantized-mesh-1.0 terrain format(用于三维可视化 ...

  6. Java基础 awt Button 鼠标放在按钮上背景颜色改变,鼠标离开背景颜色恢复

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  7. tensorflow 13:多gpu 并行训练

    多卡训练模式: 进行深度学习模型训练的时候,一般使用GPU来进行加速,当训练样本只有百万级别的时候,单卡GPU通常就能满足我们的需求,但是当训练样本量达到上千万,上亿级别之后,单卡训练耗时很长,这个时 ...

  8. GOROOT、GOPATH、GOBIN、project目录 _(转)

    前言:我觉得java程序员学golang很容易上手.关于GOROOT.GOPATH.GOBIN这些环境变量的设置,我隐约感觉到了java的影子(尽管我是一个C++程序员),唯一和java不同的是不能设 ...

  9. SAP翔子_增强篇索引

    序号 描述 SAP翔子_增强篇0 增强篇0 SAP的多种增强方式 SAP翔子_增强篇1 增强篇1 PO保存增强 SAP翔子_增强篇2 增强篇2 生产订单屏幕增强 SAP翔子_增强篇3 增强篇3 SAP ...

  10. JS增删改查localStorage实现搜索历史功能

    <script type="text/javascript"> var referrerPath = "@ViewBag.ReferrerPath" ...