本篇文章主要介绍了"最详细的 Android NavigationDrawer 开发实践总结",主要涉及到方面的内容,对于Android开发感兴趣的同学可以参考一下:
继前面写的两篇文章之后( 有问题欢迎反馈哦 ):Android开发:Translucent System Bar 的最佳实践Android开发:最详细的 Too...
继前面写的两篇文章之后( 有问题欢迎反馈哦 ):
- Android开发:Translucent System Bar 的最佳实践
- Android开发:最详细的 Toolbar 开发实践总结
接着来写写Android系统UI新特性,本文是我对最近开发过程中应用 NavigationDrawer 特性的详细总结。 本文涉及到的所有代码实现细节,会在文末附上源码地址。有问题欢迎在下方留言讨论 。
NavigationDrawer 简介
NavigationDrawer是 Google 在 Material Design 中推出的一种侧滑导航栏设计风格。说起来可能很抽象,我们直接来看看 网易云音乐 的侧滑导航栏效果

网易云音乐侧滑导航栏效果
Google 为了支持这样的导航效果,推出一个新控件 —— DrawerLayout 。而在 DrawerLayout 没诞生之前,需求中需要实现侧滑导航效果时,我们必然会选择去选择一些成熟的第三方开源库(如最有名的 SlidingMenu )来完成开发 。效果上,普遍都像 手Q 那样:

手Q的SlidingMenu实现侧滑效果
在对比过 DrawerLayout 和 SlidingMenu 的实现效果后,基于以下的几点,我认为完全可以在开发中使用 DrawerLayout 取代以前的 SlidingMenu :
- 从动画效果上看,你会发现两者仅仅是在移动的效果上有些差别外,其他地方并没有太大的差异
- 在交互效果上,我认为这两者都差不多的,就算你把 网易云音乐 的效果套到了 手Q 上,也不会影响到用户的交互
- DrawerLayout 用起来比 SlidingMenu 更简单,代码量更少(往下看就知道了)
- DrawerLayout 是向下兼容的,所以不会存在低版本兼容性问题
- Google 亲儿子,没理由不支持啊!!!!!!
到这里,要是你还没有引入 DrawerLayout 开发的冲动,请继续听我为你好好安利一番。
初识 DrawerLayout
一般情况下,在 DrawerLayout 布局下只会存在两个子布局,一个 内容布局 和 一个 侧滑菜单布局 ,这两个布局关键在于 android:layout_gravity 属性的设置。如果你想把其中一个子布局设置成为左侧滑菜单,只需要设置 android:layout_gravity=”start” 即可(也可以是 left,右侧滑则为 end 或 right ),而没有设置的布局则自然成为 内容布局 。那么,使用 DrawerLayout 到底有多简单呢,我们先直接看看下面的布局文件