Android Support Design Library之NavigationView(一)

简介: Android Support Design Library之NavigationView(一)

此安卓支持库中需要讲解的第二个View就是NavigationView,相信大家在开发中经常会用到抽屉,那么谷歌也为大家提供了这个功能,并不需要去Github去下载使用开源的软件。NavigationView基本满足日常开发抽屉的所有要求,且效率也高。下面我们看下效果图后,将详细介绍其使用方式。


44.png


1.NavigationView与DrawerLayout的天作之合


NavigationView完整包名+类名如下:android.support.design.widget.NavigationView


而DrawerLayout完整包名+类名如:android.support.v4.widget.DrawerLayout


其两者搭配起来的XML布局文件如下:


<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:id="@+id/drawerlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:fitsSystemWindows="true">
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"/>
        </android.support.design.widget.AppBarLayout>
        <LinearLayout
            android:id="@+id/linearlayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"/>
    </LinearLayout>
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer_menu"/>
</android.support.v4.widget.DrawerLayout>


属性解释如下:


①android:fitsSystemWindows="true":此属性在标题栏与抽屉中都设置了,保证系统状态栏与抽屉和标题一体化,因为我的测试手机是小米IS,Andorid 4.1的系统,该功能在5.0以上的手机才能显示其效果,故此测试图没有效果。


②app:headerLayout="@layout/drawer_header"也就是下图的区域:


45.png


这里在一般APP中都放的头像,我们这里只是做介绍,只要要drawer_header写你的任意布局,那么在此区域就会显示你所需要的界面。


③app:menu="@menu/drawer_menu":也就是下图所示区域:


46.png


也就是抽屉中的各种菜单选项。


2.实现抽屉中的菜单选项


在res/menu文件下新建drawer_menu.xml文件,写入如下代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/lyj_menu_datou"
            android:icon="@drawable/blog_tag_parent_expert"
            android:checked="true"
            android:title="我是大头"/>
        <item
            android:id="@+id/lyj_menu_xiaotou"
            android:icon="@drawable/blog_tag_parent_honorary_expert"
            android:title="我是小头"/>
        <item
            android:id="@+id/lyj_menu_chilun"
            android:icon="@drawable/blog_tag_parent_system_maintenance"
            android:title="我是齿轮"/>
    </group>
    <item android:title="其他">
        <menu>
            <item
                android:icon="@drawable/blog_tag_parent_cloud_computing"
                android:title="我是云盘"/>
            <item
                android:icon="@drawable/blog_tag_parent_comprehensive"
                android:title="我是标签"/>
        </menu>
    </item>
</menu>


属性解释如下:


①android:checkableBehavior="single":代表group所有菜单中,只能一次选择一个。


②android:checked="true":默认选中菜单项,此处为“我是大头”


③<item android:title="其他">:通过子菜单的形式,可以显示分割线与子标题

相关文章
|
7月前
|
存储 Java 数据库
Android数据存储:什么是Room Persistence Library?
Android数据存储:什么是Room Persistence Library?
139 0
|
3月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
82 1
|
4月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
190 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
5月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
【7月更文挑战第28天】随着移动应用市场的发展,用户对界面设计的要求不断提高。Material Design是由Google推出的设计语言,强调真实感、统一性和创新性,通过模拟纸张和墨水的物理属性创造沉浸式体验。它注重色彩、排版、图标和布局的一致性,确保跨设备的统一视觉风格。Android Studio提供了丰富的Material Design组件库,如按钮、卡片等,易于使用且美观。
167 1
|
7月前
|
Android开发
[Android]DrawerLayout滑动菜单+NavigationView
[Android]DrawerLayout滑动菜单+NavigationView
82 0
|
Android开发 开发者 UED
Android Design Support Library初探-更新中
Android Design Support Library初探-更新中
102 0
|
XML Java 开发工具
Android5.0新特性-Material Design
Android5.0新特性-Material Design
96 0
|
16天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
40 19
|
16天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
41 14