导航视图NavigationView
很多App都有个人中心的侧滑菜单,通常在页面左侧边缘右拉时,即可弹出个人中心的菜单页面。对于Android来说,侧滑功能用到了抽屉布局DrawerLayout,我们只要把页面的根布局设置为DrawerLayout,并指定弹出的侧滑视图,就能通过右拉页面左侧边缘,从而拉出定义好的侧滑视图。有关DrawerLayout的详细说明参见《 Android开发笔记(一百二十)两种侧滑布局》,这里就不再赘述了,接下来要介绍的是Android自带的导航视图NavigationView,它是一个侧滑菜单控件,常常用来展示个人中心页面,以及导航菜单栏目。比如下面这个图片,便是从CSDN的App个人中心页面截图而来。
从上图可以看到,导航视图的组成部分不外乎两块,一块位于页面顶部,可展示用户头像、用户昵称、用户头衔等个人信息;另一块位于页面剩余部分,主要提供前往子栏目的导航菜单,每个菜单项均为左图标右文字的布局形式。
NavigationView的结构比较简单,用法也不难。因为NavigationView是在Android5.0后新增的design库中提供,所以要先给App工程引用design库。由于design库依赖于appcompat-v7库,因此得给App工程引用appcompat-v7库。另外,还要补充引用recyclerview-v7库,如果没引用recyclerview的话,运行时会报错“Didn't find class "android.support.design.internal.NavigationMenuView"”。总结一下,要想正常使用导航视图NavigationView,App需要增加三个库的引用,分别是design库、appcompat-v7库和recyclerview-v7库。
在布局文件中使用NavigationView,可设置以下几个专门属性:
app:headerLayout : 指定头部布局的资源文件。
app:menu : 指定导航菜单的资源文件。
app:itemBackground : 指定菜单项的的背景。
app:itemTextColor : 指定菜单项的文字颜色。
app:itemTextAppearance : 指定菜单项的文字样式。
app:itemIconTint : 指定菜单项的图标色彩。
下面是个采用了DrawerLayout和NavigationView布局文件例子:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/andro