赞
踩
效果如下:
新建menu布局,表示菜单栏的选项
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <group android:checkableBehavior="single">
- <item
- android:id="@+id/navCall"
- android:icon="@drawable/nav_call"
- android:title="Call" />
- <item
- android:id="@+id/navFriends"
- android:icon="@drawable/nav_friends"
- android:title="Friends" />
- <item
- android:id="@+id/navLocation"
- android:icon="@drawable/nav_location"
- android:title="Location" />
- <item
- android:id="@+id/navMail"
- android:icon="@drawable/nav_mail"
- android:title="Mail" />
- <item
- android:id="@+id/navTask"
- android:icon="@drawable/nav_task"
- android:title="Tasks" />
- </group
group表示item的选项属于group组内,并且设置了group里面的选项为单选
菜单栏由两部分组成,头部和菜单。上面已经实现了菜单。现在要实现头部:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="180dp"
- android:padding="10dp"
- android:background="@color/colorPrimary">
-
- <de.hdodenhof.circleimageview.CircleImageView
- android:id="@+id/iconImage"
- android:layout_width="70dp"
- android:layout_height="70dp"
- android:src="@drawable/nav_icon"
- android:layout_centerInParent="true" />
-
- <TextView
- android:id="@+id/mailText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:text="tonygreendev@gmail.com"
- android:textColor="#FFF"
- android:textSize="14sp" />
-
- <TextView
- android:id="@+id/userText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_above="@id/mailText"
- android:text="Tony Green"
- android:textColor="#FFF"
- android:textSize="14sp" />
-
- </RelativeLayout>
activity_main.xml:
- <androidx.drawerlayout.widget.DrawerLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/drawerLayout"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:background="@color/colorPrimary"
- android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
- </FrameLayout>
- <com.google.android.material.navigation.NavigationView
- android:id="@+id/navView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="start"
- app:menu="@menu/nav_menu"
- app:headerLayout="@layout/nav_header"/>
- </androidx.drawerlayout.widget.DrawerLayout>
drawerlayout是菜单栏的主体,一般配合NavigationView使用,实现好看的UI界面。drawerlayout的第一个布局是主界面的布局。第二个是打开菜单栏后的菜单栏的布局。此处直接由NavigationView替换即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。