模块4:主视图UI布局 - 使用Toolbar (5)
2019-03-15 本文已影响0人
jingz课程
实现抽屉菜单按钮
按照Android应用的一般设计原则,抽屉菜单的展开通常由处在界面顶部ActionBar或Toolbar中最左端的抽屉按钮来触发。在视觉上,这个按钮通常设计成三条横线组成的图标,形似一个抽象的汉堡包,被戏称为“汉堡包按钮”。
打开MainActivity.java
,首先添加2个我们关心的成员对象如下:
![](https://img.haomeiwen.com/i10901316/8a46d6e6ef2b3779.png)
注意添加代码的位置。
分别说明一下这3个对象:
-
mDrawer
:即抽屉布局DrawerLayout
对应的对象。 -
mDrawerToggle
:抽屉触发器对象。这是一个ActionBarDrawerToggle
类实例。这个类从名字就可以看出它对应于前面说的“汉堡包按钮”,用来接收用户点击并展开抽屉。
接下来,在onCreate()
方法的最后对这2个对象进行初始设置:
![](https://img.haomeiwen.com/i10901316/8a61c4c1c9c28924.png)
这里解释一下这三行代码:
第一行从布局文件获取抽屉对象
第二行创建抽屉触发器对象,它的参数比较多,关联了当前Activity,抽屉对象,Toolbar,并设置了抽屉开/闭状态下分别关联的文字。两个字符串目前并不存在,请按照上节的方法新建字串。
第三行即将mDrawerToggle触发器对象作为抽屉事件的监听器关联到抽屉。
接下来使触发器对象mDrawerToggle记录的开闭状态与抽屉的实际状态一致。在类中重写onPostCreate()
方法并添加对应的方法调用即可:
![](https://img.haomeiwen.com/i10901316/5908f6fce19cf34e.png)
再重写onConfigurationChanged()
以在诸如转屏等时刻记录抽屉状态:
![](https://img.haomeiwen.com/i10901316/883e4a001ddefac7.png)
最后,“汉堡包按钮”同样被作为菜单项来处理。下面在onOptionsItemSelected()
方法中编写处理针对它的点击事件:
![](https://img.haomeiwen.com/i10901316/fa3ce9dca6bcf325.png)
运行程序,点击汉堡包按钮抽屉即可展开,点击空白处菜单收起:
![](https://img.haomeiwen.com/i10901316/0e00dbf015a0e395.gif)
截止目前,主视图中的Toolbar的创建和配置就告一段落。接下来考虑实现主屏内容的左右侧滑切换。
本节涉及修改的文件有:
modified: app/src/main/java/com/dmtech/iw/MainActivity.java