新建带抽屉导航的 APP

来自CloudWiki
跳转至: 导航搜索

相关知识

NavigationDrawer 是 Google 在 Material Design 中推出的一种侧滑导航栏设计风格。

Google 为了支持这样的导航效果,推出一个新控:DrawerLayout 。

一般情况下,在 DrawerLayout 布局下只会存在两个子布局,一个内容布局和一个侧滑菜单布局,这两个布局关键在于 android:layout_gravity 属性的设置。如果你想把其中一个子布局设置成为左侧滑菜单,只需要设置 android:layout_gravity="start" 即可(也可以是 left,右侧滑则为 end 或 right ),而没有设置的布局则自然成为内容布局。

下面代码为 activity_main.xml 中的内容,第一部分为内容布局,第二部分为侧滑菜单布局。

<!--主内容区域-->
<include
layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" />
<!--导航-->
<android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer"
/>

请注意其中 NavigationView 的两个自定义属性:

app:headerLayout 接收一个 layout,作为导航菜单顶部的 Header,为可选项。app:menu 接收一个 menu,作为导航菜单的菜单项,几乎是必选项,不然这个控件就失去意义了。但也可以在运行时动态改变 menu 属性。

用于 NavigationView 的典型 menu 文件,应该是一个可选中菜单项的集合。其中checked="true"的 item 将会高亮显示,这可以确保用户知道当前选中的菜单项是哪个。如图 4-1 所示为创建的工程布局和菜单文件列表资源图。

文件:And1-1.png

未完待续。。。