滑动菜单栏

效果如下:

新建menu布局,表示菜单栏的选项

XML 复制代码
 <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里面的选项为单选

菜单栏由两部分组成,头部和菜单。上面已经实现了菜单。现在要实现头部:

XML 复制代码
 <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:

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替换即可。

相关推荐
2501_944424123 小时前
Flutter for OpenHarmony游戏集合App实战之贪吃蛇食物生成
android·开发语言·flutter·游戏·harmonyos
2501_937145415 小时前
神马影视8.8版2026最新版:核心技术升级与多场景适配解析
android·源码·电视盒子·源代码管理
2501_944424127 小时前
Flutter for OpenHarmony游戏集合App实战之俄罗斯方块七种形状
android·开发语言·flutter·游戏·harmonyos
不会Android的潘潘8 小时前
受限系统环境下的 WebView 能力演进:车载平台 Web 渲染异常的根因分析与优化实践
android·java·前端·aosp
建军啊8 小时前
java web常见lou洞
android·java·前端
豆奶dudu9 小时前
安卓应用签名生成+微信开放平台安卓应用签名
android·微信开放平台
AC赳赳老秦10 小时前
Dify工作流+DeepSeek:运维自动化闭环(数据采集→报告生成)
android·大数据·运维·数据库·人工智能·golang·deepseek
2501_9444241210 小时前
Flutter for OpenHarmony游戏集合App实战之记忆翻牌配对消除
android·java·开发语言·javascript·windows·flutter·游戏
2501_9445264210 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 设置功能实现
android·javascript·flutter·游戏·harmonyos
冬奇Lab11 小时前
【Kotlin系列11】协程原理与实战(下):Flow与Channel驯服异步数据流
android·开发语言·kotlin