使用NavigationView 进行导航栏的设计
Posted 和平world
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用NavigationView 进行导航栏的设计相关的知识,希望对你有一定的参考价值。
Navigation View
抽屉导航是app识别度与内部导航的关键,保持这里设计上的一致性对app的可用性至关重要,尤其是对于第一次使用的用户。 NavigationView 通过提供抽屉导航所需的框架让实现更简单,同时它还能够直接通过菜单资源文件直接生成导航元素。
把NavigationView作为DrawerLayout的内容视图来使用,比如下面的布局:
| <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <!-- your content layout --> <android.support.design.widget.NavigationView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/drawer_header" app:menu="@menu/drawer"/> </android.support.v4.widget.DrawerLayout> |
你会注意到NavigationView的两个属性:app:headerLayout - 控制头部的布局, app:menu - 导航菜单的资源文件(也可以在运行时配置)。NavigationView处理好了和状态栏的关系,可以确保NavigationView
在API21+设备上正确的和状态栏交互。最简单的抽屉菜单就是几个可点击的菜单集合:
1 2 3 4 5 6 7 8 9 10 11 |
<group android:checkableBehavior= "single" >
<item
android:id= "@+id/navigation_item_1"
android:checked= "true"
android:icon= "@drawable/ic_android"
android:title= "@string/navigation_item_1" />
<item
android:id= "@+id/navigation_item_2"
android:icon= "@drawable/ic_android"
android:title= "@string/navigation_item_2" />
</group>
|
被点击过的item会高亮显示在抽屉菜单中,让用户知道当前是哪个菜单被选中。
你也可以在menu中使用subheader来为菜单分组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<item
android:id= "@+id/navigation_subheader"
android:title= "@string/navigation_subheader" >
<menu>
<item
android:id= "@+id/navigation_sub_item_1"
android:icon= "@drawable/ic_android"
android:title= "@string/navigation_sub_item_1" />
<item
android:id= "@+id/navigation_sub_item_2"
android:icon= "@drawable/ic_android"
android:title= "@string/navigation_sub_item_2" />
</menu>
</item>
|
你可以通过设置一个OnNavigationItemSelectedListener,使用其setNavigationItemSelectedListener()来获得元素被选中的回调事件。它为你提供被点击的 菜单元素 ,让你可以处理选择事件,改变复选框状态,加载新内容,关闭导航菜单,以及其他任何你想做的操作。
以上是关于使用NavigationView 进行导航栏的设计的主要内容,如果未能解决你的问题,请参考以下文章
swiftnavigationview和scrollview
Android NavigationView 导航抽屉的使用