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 ...
随机推荐
- oracle中union和union all区别与性能分析
[ 概要 ] 经常写sql的同学可能会用到union和union all这两个关键词, 可能你知道使用它们可以将两个查询的结果集进行合并, 那么二者有什么区别呢? 下面我们就简单的分析下. [ 比较 ...
- X-factor Chain(信息学奥赛一本通 1628)
题目描述 输入正整数 x,求 x 的大于 1 的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的序列的个数. 输入 多组数据,每组数据一行,包含一个正整数 x. 对于全部数据 ...
- AngularJS实现地址栏取值
有时候我们由如下需求 1.从a.html跳转到b.html 2.从a跳转时携带参数和值. 3.从b.html中取出传过来的参数值 在AngularJS的操作如下 在a.html中添加 <a hr ...
- Morpheus
https://software.broadinstitute.org/morpheus/
- vue的跳转方式(打开新页面)及传参
1. router-link跳转 // 直接写上跳转的地址 <router-link to="/detail/one"> <span class="sp ...
- intellij idea远程调试
有时候发布后的包不得不进行debug,但是又不方便本地开发环境直接debug模拟,所以不得不需要远程debug. 启动参数 首先在服务端使用JVM的-Xdebug参数启动Jar包. java -Xde ...
- [转]docx4j实现动态表格(模板式)
原文地址:https://chendd.cn/information/viewInformation/other/257.a 除了前篇文章中讲到的编程式创建表格外,基于模板实现的列表表格也是非常常用或 ...
- [转]详解vue父组件传递props异步数据到子组件的问题
原文地址:https://www.cnblogs.com/goloving/p/9114389.html 案例一 父组件parent.vue // asyncData为异步获取的数据,想传递给子组件使 ...
- java中HashSet对象内的元素的hashCode值不能变化
因为不管是HashMap(或HashTable,还是HashSet),key值是以hashCode值存进去的,加入key值变了,将无法从集合内删除对象,导致内存溢出.
- mysql 日期自动自动添加及更新为当前时间
1. 虽然mysql中日期时间类型比较多,但是支持默认值的类型只有timestamp,详见这里. 2. 希望新增记录时自动写入当前时间,建表语句如下: `create_time` timestamp ...