Material-Design-组件之NavigationView
原文首发于微信公众号:jzman-blog,欢迎关注交流!Material Design 系列文章: Material Design组件之FloatingActionButtonMaterial Design组件之AppBarLayoutMaterial Design组件之CollapsingToolbarLayout今天来看一下 NavigationView 的使用,NavigationView 是一个标准的导航菜单,其菜单内容由菜单资源文件来填充,NavigationView 一般和 DrawerLayout 一起搭配使用构成抽屉菜单,分别由内容页和菜单页组成。主要内容如下: 基本布局常用属性文字选中效果图标与文字间距案例显示效果基本布局可以直接使用 DrawerLayout 作为根布局,里面依次是内容布局和菜单布局,切记内容布局一定是在菜单布局的前面,可以这样理解菜单划出的时候肯定应该在内容布局之上,如果两者顺序相反,则影响菜单 Item 的点击事件以及菜单的滑动隐藏,当然如果有 ToolBar 等,可以按需添加到内容布局中,也可以 DrawerLayout 外,唯一区别是侧换菜单是否遮挡 ToolBar,基本使用参考如下: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <!--内容 --> <!--菜单--> <android.support.design.widget.NavigationView android:id="@+id/navigation" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/my_navigation_items" /> </android.support.v4.widget.DrawerLayout>常用属性下面是 NavigationView 的常用属性,具体如下: <!--菜单弹出方向-->android:layout_gravity="start"<!--菜单图标渲染的颜色-->app:itemIconTint="@color/colorPrimary"<!--菜单文字的颜色-->app:itemTextColor="@color/colorNormal"<!--菜单项背景颜色(组之间有间隔)-->app:itemBackground="@color/colorBackground"<!--菜单项-->app:menu="@menu/menu_navigation_view" <!--NavigationView的头部布局-->app:headerLayout="@layout/head_navigation_layout"文字选中效果如果美工比较用心会告诉点击时是那种颜色、按下是那种颜色或者是某种效果,此时就需要设置菜单项文字选中效果了,这里选择创建在 color 资源文件的形式来实现文字选中效果了,定义 color 资源文件如下: <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!--按下--> <item android:color="@color/colorPress" android:state_pressed="true"/> <!--选中--> <item android:color="@color/colorCheck" android:state_checked="true"/> <!--默认--> <item android:color="@color/colorNormal"/></selector>然后,设置 NavigationView 的 itemTextColor 属性即可,具体如下: ...