模块3:建立主界面UI框架 - 使用抽屉导航(3)
在抽屉布局中,主视图与抽屉视图的空间关系应当是前者在下,而后者叠压在前者之上。因此,在布局文件中应当体现这种关系。打开main_drawer_layout.xml
——将主视图和抽屉视图分别作为子视图嵌入到根元素内部。按照Android SDK的约定,布局文件中的元素越靠下,则在屏幕上越居于上层。因此,我们要使主视图在上,抽屉视图在下:
为了使代码便于管理和阅读,我们分别为主视图和抽屉视图单独定义一个布局文件,然后再通过include
标签将二者分别导入到main_drawer_layout.xml
中。
主视图
不必为主视图重新额外建立新的布局文件,可以直接利用创建项目时Android Studio自动生成的activity_main.xml
。直接将其“include”到main_drawer_layout.xml
中:
这里来解释一下<include>
标签下各行的作用:
-
layout
:指明被包含进来的是哪个布局文件中的内容。此处设置为activity_main.xml
文件 -
android:layout_width
,android:layout_height
:设置宽度和高度。此处均设置为match_parent
,即填满父视图。
抽屉视图
现在为抽屉视图创建一个新的布局文件。步骤与创建main_drawer_layout.xml
时相类似,只是将文件命名为drawer_view.xml
,而将其根元素类型设置为RelativeLayout
:
确认后查看该文件内容,注意整理代码格式。目前我们暂时不关注抽屉视图中的具体内容,只向其中临时添加一个TextView
文本视图,将它的文字设置成“抽屉视图”。同时将抽屉视图的背景颜色设置为颜色主题中的强调色来方便查看效果:
下面它关联到抽屉布局中。还是打开main_drawer_layout.xml
文件。在主视图下方添加另外一个<include>
标签来引入抽屉视图:
其中,将它的android:layout_width
属性设置为300dp
,使得抽屉视图展开后不至于完全遮盖主视图。同时设置android:layout_gravity
属性为start
,这使得抽屉从屏幕的左侧而非其它位置展开。
运行程序,目前抽屉只能通过手势来打开。将鼠标靠近模拟器屏幕最左侧,然后按住并向右拖拽即可展开抽屉;点击抽屉外部右侧空白区域则可将抽屉关闭:
抽屉的展开与折叠