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="其他">:通过子菜单的形式,可以显示分割线与子标题

相关文章
|
4月前
|
存储 Java 数据库
Android数据存储:什么是Room Persistence Library?
Android数据存储:什么是Room Persistence Library?
95 0
|
6天前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
21 1
|
1月前
|
开发工具 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
138 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
2月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
【7月更文挑战第28天】随着移动应用市场的发展,用户对界面设计的要求不断提高。Material Design是由Google推出的设计语言,强调真实感、统一性和创新性,通过模拟纸张和墨水的物理属性创造沉浸式体验。它注重色彩、排版、图标和布局的一致性,确保跨设备的统一视觉风格。Android Studio提供了丰富的Material Design组件库,如按钮、卡片等,易于使用且美观。
91 1
|
4月前
|
Android开发
[Android]DrawerLayout滑动菜单+NavigationView
[Android]DrawerLayout滑动菜单+NavigationView
63 0
|
Android开发 开发者 UED
Android Design Support Library初探-更新中
Android Design Support Library初探-更新中
90 0
|
XML Java 开发工具
Android5.0新特性-Material Design
Android5.0新特性-Material Design
81 0
|
Android开发
Android Support库——support annotations
  Android Support库是官方出的支持扩展库,包含了丰富的组件、工具类等,通过在Android SDK Manager中勾选以下两项来获取到。   其中,Android Support Library下载的是对应的源码或jar包,在使用Eclipse时会从这里拷贝出需要的文件到项目中。
969 0
|
13天前
|
Android开发 开发者 Kotlin
探索安卓开发中的新特性
【9月更文挑战第14天】本文将引导你深入理解安卓开发领域的一些最新特性,并为你提供实用的代码示例。无论你是初学者还是经验丰富的开发者,这篇文章都会给你带来新的启示和灵感。让我们一起探索吧!
|
8天前
|
Android开发 开发者
安卓开发中的自定义视图:从入门到精通
【9月更文挑战第19天】在安卓开发的广阔天地中,自定义视图是一块充满魔力的土地。它不仅仅是代码的堆砌,更是艺术与科技的完美结合。通过掌握自定义视图,开发者能够打破常规,创造出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战应用,一步步展示如何用代码绘出心中的蓝图。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创意和效率的大门。让我们一起探索自定义视图的秘密,将你的应用打造成一件艺术品吧!
30 10