其实可以把 drawerLayout 放到对话框中,这样就可以在任意位置打开侧滑抽屉界面了,不必嵌套在主界面之内。缺点是这样的抽屉关闭后无法再滑动打开,只能通过点击菜单/按钮来打开,不过自从安卓出全面屏手势后,这个缺点也就不算缺点了。
于是我们至少有了三种对话框:
- 普通款。 通用,可用于webview 播放全屏视频。
- 底部弹出款。如各种播放列表、多收藏夹、分享列表对话框。初始只占用一半屏幕,可展开。适合在只对列表中一部分的上下文感兴趣时使用。
- 左侧弹出款。(抽屉对话框),如各种书签、笔记、目录对话框。初始即占用大部分的屏幕,适合在项目多、需要纵览全表时使用。
如下是我写的笔记列表界面,可以在任意位置打开:
附 :
-
DrawerLayout 写法,xml 中任意视图中指定 layout_gravity 为Start/End即可,不必用不太灵活的 fragment。 DrawerLayout 会在 addview 中检测每一个子视图(isDrawerView)。
-
DrawerLayout 解决嵌套列表时滑动冲突:DrawerLayout与ListView滑动冲突
-
修复 “must be measured with MeasureSpec.EXACTLY” BUG:布局使用DrawerLayout ,出现DrawerLayout must be measured with MeasureSpec.EXACTLY.异常