android29之UI控件的抽屜式實現方法之一(DrawerLayout和NavigationView)

添加依賴

implementation 'com.google.android.material:material:1.2.0-alpha06'


在Layout中創建兩個Xml布局文件,header.xml和menu.xml
header.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="//schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#F89215"
      />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="//schemas.android.com/apk/res-auto"
    xmlns:android="//schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <group android:checkableBehavior="single">
        <item android:title="首頁" />
        <item android:title="收藏" />
        <item android:title="設置" />
        <item android:title="關於" />
        <item android:title="分享" />
    </group>

</menu>
activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="//schemas.android.com/apk/res/android"
    xmlns:app="//schemas.android.com/apk/res-auto"
    xmlns:tools="//schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#5EA7F3"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.google.android.material.navigation.NavigationView
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@layout/nav_menu"
        />
</androidx.drawerlayout.widget.DrawerLayout>
運行結果如下

Tags: