Material Design(四)--NavigationView

导航抽屉能够成为应用内标识和导航的非常重要的焦点,设计的一致性也对于应用的导航是多么地容易产生了重要的影响,尤其是对于小白用户。NavigationView通过提供一种框架,使得这种想法更加容易实现。而这个框架则满足了你对于导航抽屉和通过menu资源填充导航item的能力的需要。

你可以像这样在布局文件中把NavigationView作为DrawerLayout的抽屉内容视图:

1 <android.support.v4.widget.DrawerLayout
 2         xmlns:android=‘http://schemas.android.com/apk/res/android‘
 3         xmlns:app=‘http://schemas.android.com/apk/res-auto‘
 4         android:layout_width=‘match_parent‘
 5         android:layout_height=‘match_parent‘
 6         android:fitsSystemWindows=‘true‘>
 7     <!-- your content layout -->
 8     <android.support.design.widget.NavigationView
 9             android:layout_width=‘wrap_content‘
10             android:layout_height=‘match_parent‘
11             android:layout_gravity=‘start‘
12             app:headerLayout=‘@layout/drawer_header‘
13             app:menu=‘@menu/drawer‘/>
14 </android.support.v4.widget.DrawerLayout>

你可能会注意到NavigationView的两个属性:app:headerLayout控制用于header的可选布局。app:menu是用于填充导航项的菜单资源,同时也可以在运行时更新导航项内容。NavigationView为你提供状态栏的纱布保护,以确保NavigationView与状态栏在API 21+的设备上准确地进行交互。

最简单的抽屉菜单是一系列checkable菜单项的集合:

 1 <group android:checkableBehavior=‘single‘>
 2     <item
 3         android:id=‘@+id/navigation_item_1‘
 4         android:checked=‘true‘
 5         android:icon=‘@drawable/ic_android‘
 6         android:title=‘@string/navigation_item_1‘/>
 7     <item
 8         android:id=‘@+id/navigation_item_2‘
 9         android:icon=‘@drawable/ic_android‘
10         android:title=‘@string/navigation_item_2‘/>
11 </group>

checked项将会在导航抽屉里面高亮显示,以确保用户知道哪个导航项在当前情况下是选中的。

你也可以在menu中使用subheader来分割导航项群组:

 1 <item
 2     android:id=‘@+id/navigation_subheader‘
 3     android:title=‘@string/navigation_subheader‘>
 4     <menu>
 5         <item
 6             android:id=‘@+id/navigation_sub_item_1‘
 7             android:icon=‘@drawable/ic_android‘
 8             android:title=‘@string/navigation_sub_item_1‘/>
 9         <item
10             android:id=‘@+id/navigation_sub_item_2‘
11             android:icon=‘@drawable/ic_android‘
12             android:title=‘@string/navigation_sub_item_2‘/>
13     </menu>
14 </item>

你可以通过使用setNavigationItemSelectedListener()方法设置OnNavigationItemSelectedListener来获取已选中项的回调。它向你提供了被点击的MenuItem,以允许你处理选中事件,改变被选中状态,加载新的内容,通过代码关闭抽屉,或者任何你想要的事件。

时间: 2024-11-10 22:05:29

Material Design(四)--NavigationView的相关文章

Android(Lollipop/5.0) Material Design(四) 创建列表和卡片

Material Design系列 Android(Lollipop/5.0)Material Design(一) 简单介绍 Android(Lollipop/5.0)Material Design(二) 入门指南 Android(Lollipop/5.0)Material Design(三) 使用Material主题 Android(Lollipop/5.0)Material Design(四) 创建列表和卡片 Android(Lollipop/5.0)Material Design(五) 定

Material Design: NavigationView FlaotingActionBar SnackBar采用

转载 请明确说明 MingsangAndroid 本文介绍了Design Support Library的引入 拥抱Android Design Support Library新变化(导航视图.悬浮ActionBar..).今天则重点介绍当中三个控件:NavigationView和 FloatingActionBar以及 SnackBar的基本使用方法. 本文代码地址:DesignSupportDemo 为了便于各位练习,这是代码中会用到的全部图片素材 图片素材.zip 作为三者的综合练习,我们

Android Material Design之 NavigationView侧滑界面自定义 随笔

一.侧滑界面Menu自定义: 在menu文件夹下新建activity_main_drawer.xml文件,自定义标题和icon: 1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android"> 3 <group android:checkableBehavior=&

Material Design之NavigationView和DrawerLayout实现侧滑菜单栏

本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design包下的一个控件,该包下还有AppBarLayout.CoordinatorLayout.FloatingActionButton.SnackBar.TabLayout控件,也是Google在Android 5.x推荐规范式使用的控件.本系列将逐一介绍每个控件的使用... 好了,先来看看本文最终的效果

Material Design(四)

上篇介绍了Material Design中的各种动画效果,结合第一篇就可以写出很棒的UI界面了,这次再学习下Material Design中其它控件. 照常先贴学习链接: https://github.com/traex/ExpandableLayout http://githubonepiece.github.io/2015/11/26/Material-Design-Palette/ http://www.fx114.net/qa-26-168872.aspx http://blog.csd

Android(Lollipop/5.0) Material Design(四) 定义阴影和裁剪View

官网:https://developer.android.com/intl/zh-tw/training/material/shadows-clipping.html Material设计为UI元素引入了一个depth值,depth帮助用户了解每个元素相对重要性,重点关注手头的任务 每个View的elevation值,相当于z属性,它决定了阴影的大小:z越大,阴影越大. Views仅仅在z=0的平面时才会投影:它们不会投影在放置在它们下面和上面的的其他Views上. 使用较高z值的Views会阻

Material Design系列第四篇——Using the Material Theme

Defining Shadows and Clipping Views This lesson teaches you to Assign Elevation to Your Views Customize View Shadows and Outlines Clip Views You should also read Material design specification Material design on Android Material design introduces elev

【Material Design视觉设计语言】应用样式设计

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells [Material Design视觉设计语言]章节列表 [Material Design视觉设计语言]开篇 [Material Design视觉设计语言]Material Design设计概述 [Material Design视觉设计语言]应用布局设计 [Material D

Material Design 开发利器:Android Design Support Library 介绍

转自:https://blog.leancloud.cn/3306/ Android 5.0 Lollipop 是迄今为止最重大的一次发布,很大程度上是因为 material design —— 这是一门新的设计语言,它刷新了整个 Android 的用户体验.但是对于开发者来说,要设计出完全符合 material design 哲学的应用,是一个很大的挑战.Android Design Support Library 对此提供了很好的支持,里面汇集了很多重要的 material design 控