【Android - MD】之NavigationView的使用

來源:互聯網
上載者:User

標籤:auto   new   tac   XML   into   ott   work   分享   stat   

NavigationView是Android 5.0新特性——Material Design中的一個布局控制項,可以結合DrawerLayout使用,讓側滑菜單變得更加美觀(可以添加頭部布局)。

NavigationView需要嵌套在DrawerLayout內部,其相對於單獨使用DrawerLayout的優點在於可以額外添加一個HeaderView頭部布局。另外,NavigationView中的其他選項都是用menu的形式來編寫的,menu中的分支也可以在NavigationView中形成分欄效果。

 

和其他MD控制項一樣,使用NavigationView需要在gradle檔案中註冊依賴:

compile ‘com.android.support:design:24.1.1‘


1、NavigationView的屬性:

            app:headerLayout:NavigationView的頭部布局,其中可以存放ImageView、TextView等控制項            app:menu:NavigationView中的Item項,存在menu中


2、布局樣本:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#FFFFFFFF"    android:orientation="vertical">    <android.support.v7.widget.Toolbar        android:id="@+id/toolbar"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/colorPrimary"        android:minHeight="?attr/actionBarSize" />    <android.support.v4.widget.DrawerLayout        android:id="@+id/drawer"        android:layout_width="match_parent"        android:layout_height="match_parent">        <!-- 主介面布局 -->        <FrameLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:background="#DDDDDD" />        <android.support.design.widget.NavigationView            android:id="@+id/navigationview"            android:layout_width="256.0dip"            android:layout_height="match_parent"            android:layout_gravity="left"            android:background="@color/colorPrimary"            android:fitsSystemWindows="true"            app:headerLayout="@layout/sideworks_navhead"            app:menu="@menu/navigate" />    </android.support.v4.widget.DrawerLayout></LinearLayout>

menu檔案中的代碼如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android">    <group>        <item            android:id="@+id/one_one"            android:icon="@mipmap/ic_launcher"            android:title="Group one Item one" />        <item            android:id="@+id/one_two"            android:icon="@mipmap/ic_launcher"            android:title="Group one Item two" />        <item            android:id="@+id/one_three"            android:icon="@mipmap/ic_launcher"            android:title="Group one Item three" />    </group>    <item android:title="Group Two">        <menu>            <item                android:id="@+id/two_one"                android:icon="@mipmap/ic_launcher"                android:title="Group one Item one" />            <item                android:id="@+id/two_two"                android:icon="@mipmap/ic_launcher"                android:title="Group one Item two" />        </menu>    </item></menu>

頭部布局中的代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#00000000"    android:gravity="center_horizontal"    android:orientation="vertical">    <ImageView        android:id="@+id/header_image"        android:layout_width="150.0dip"        android:layout_height="150.0dip"        android:layout_marginTop="20.0dip"        android:contentDescription="@string/app_name"        android:src="@mipmap/ic_launcher" />    <TextView        android:id="@+id/header_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginBottom="20.0dip"        android:layout_marginTop="10.0dip"        android:text="Navigation View"        android:textColor="#FFFFFFFF"        android:textSize="18.0sp"        android:textStyle="bold" /></LinearLayout>


3、彈出抽屜:

在JAVA代碼中通過點擊Toolbar中的ActionBarDrawerToggle來彈出抽屜。代碼如下:

        // 綁定Toolbar到Activity中        setSupportActionBar(toolbar);        // 在Toolbar上設定一個按鈕,點擊這個按鈕可以拉出抽屜        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(MainActivity.this, drawer, toolbar, R.string.drawer_open, R.string.drawer_close);        toggle.syncState();        drawer.addDrawerListener(toggle);

最終的示範效果如:


以上就是對NavigationView的簡單用法的介紹,下面貼出碼雲上的源碼,供大家參考。

DEMO地址

【Android - MD】之NavigationView的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.