react-navigation 的抽屉效果 createDrawerNavigator (DrawerNavigator)
一、前言:
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)的更多相关文章
- C# WPF抽屉效果实现(C# WPF Material Design UI: Navigation Drawer & PopUp Menu)
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- react-native 学习 ----- React Navigation
很久没有的登陆博客园了,密码都是找回的,从当年的大学生已经正常的走上了程序员的道路,看到之前发的博客还是写的android,现在自己已经在使用了react-native了. 大学毕业了,做了java后 ...
- [RN] 04 - React Navigation
react-navigation和react-router的对比: 支持的平台: react-navigation: react-native react-router: react-native.r ...
- React-native 导航插件React Navigation 4.x的使用
React-native 导航插件React Navigation 4.x的使用 文档 英文水平可以的话,建议直接阅读英文文档 简单使用介绍 安装插件 yarn add react-navigatio ...
- 浅谈DrawerLayout(抽屉效果)
DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果. 实现效果如下: 因为是官方提供的,所以使用起来也相对的比较简单. DrawerLayout 提供 1.当界面弹出的时候,主要内容区会 ...
- Android 抽屉效果的导航菜单实现
Android 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...
- Android 抽屉效果
昨天在用“酷我音乐”听歌的时候注意到了界面右上角的四角方块,当我点击这个方块的时候会从屏幕的左边弹出新的界面而把原来的界面挤到左边,是显示了一小部分. 于是,我便在网上查询了一下相关的文章,现将这种效 ...
- 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
在做谷歌电子市场的时候用的是DrawerLayout实现的抽屉效果,在新闻客户端的时候用的是开源框架SlidingMenu来实现的,总的来说,各有个的优点,侧滑(开源框架)实现的效果更好,但是Draw ...
- React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方
以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation react-native ...
随机推荐
- js 判断一个数是否在数组中
,,,,,,,); ; ; i < arr.length; i++) { ){ console.log(i); flag=; break; } } ){ console.log("66 ...
- ROC曲线 VS PR曲线
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...
- lightgbm GPU版本安装
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
- MySQL 设计与开发规范
MySQL 设计与开发规范 1 目的 本规范的主要目的是希望规范数据库设计与开发,尽量避免由于数据库设计与开发不当而产生的麻烦:同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好保 ...
- OSS利用ossutil64上传文件
ossutil64下载地址: http://gosspublic.alicdn.com/ossutil/1.6.0/ossutil64?spm=a2c4g.11186623.2.12.3638159 ...
- nsqphp源码分析(一)
一.目录结构 二.
- Embed MP4 in HTML using flash-player(html5 video player)
https://stackoverflow.com/questions/1000851/embed-mp4-in-html-using-flash-player ******************* ...
- 中国大互联网公司在github上的开源项目
公司名 账号数 账号名 总项目数 非fork项目数 百度 13 baidu.ApolloAuto. brpc. mipengine.Clouda-team.mesalock-linux. ecomfe ...
- 量化编程技术—pandas与数据分析
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import numpy as np stock_cnt = 200 view_day ...
- 快速修改Windows系统密码命令
因现场需要,要对30多台虚拟机进行密码修改.正常修改方式为进入控制面板--用户账户--修改密码,输入原始密码.2遍新密码(一遍用于密码确认)完成密码修改. 这种方式操作较为繁琐,我们可以直接通过命令的 ...