NavigationView主要是和DrawerLayout框架結合使用,來完成抽屜導航實現側邊欄
引用一段官方文檔的示例代碼
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <!-- Your contents --> <android.support.design.widget.NavigationView android:id="@+id/navigation" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/my_navigation_items" /> </android.support.v4.widget.DrawerLayout>
在使用NavigationView之前需要將相應的design庫添加到項目的依賴中,
然后在xml中外層用DrawerLayout包裹,內層一部分是正文內容區(content),另一部分則是側邊欄NavigationView,這里面包含兩個布局,一個是headerLayout,一個是menu,
頭布局沒什么好說的,跟普通的布局定義方式類似,menu布局的示例代碼如下
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <group android:checkableBehavior="single"> <item android:id="@+id/navigation_item_first" android:icon="@drawable/first" android:title="第一項" /> <item android:id="@+id/navigation_item_second" android:icon="@drawable/second" android:title="第二項" /> <item android:id="@+id/navigation_item_third" android:icon="@drawable/third" android:title="第三項" /> </group> </menu>
其中各個條目還有checked屬性,設置為true的條目將會高亮顯示
group中的checkableBehavior屬性表示這組這組菜單是否checkable,有三個值可選,分別為none,all(單選/單選按鈕radio button),single(非單選/復選類型checkboxes)
最后還可以在代碼中通過setNavigationItemSelectedListener方法來設置菜單項被點擊的回調,
里面重寫的onNavigationItemSelectedListener方法提供了被選中的MenuItem,用法和Activity的onOptionsItemSelected類似
這樣就可以實現一個簡單的抽屜導航側滑菜單欄,需要更多的屬性與用法可以自行查看Android官方文檔並深入鑽研