Android导航面板:底部导航+侧滑菜单

Android导航面板:底部导航+侧滑菜单

Android小彩虹2021-08-23 11:11:41310A+A-

展示效果

image

项目地址

首先新建项目,分别勾选kotlin和AndroidX支持,并引入框架

image

打开主活动布局,拖入控件,调好属性

侧滑菜单代码放在抽屉布局底部,并指定布局重力,选择start或end,表示左侧或右侧。

主界面需要用一个单独布局包裹起来,这样才不会导致底部菜单和侧滑冲突。

底部菜单视图和侧滑菜单视图要指定menu属性,和建普通菜单一样。

image


<!--抽屉布局作为根布局-->

<androidx.drawerlayout.widget.DrawerLayout         xmlns:android="http://schemas.android.com/apk/res/android"         xmlns:app="http://schemas.android.com/apk/res-auto"         xmlns:tools="http://schemas.android.com/tools"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:id="@+id/drawerLayout"         android:fitsSystemWindows="true"         tools:openDrawer="start"         tools:context=".ui.activity.MainActivity">

    <!--约束布局作为主界面父布局-->

    <androidx.constraintlayout.widget.ConstraintLayout             android:layout_width="match_parent"             android:layout_height="match_parent">

        <androidx.appcompat.widget.Toolbar                 android:layout_width="match_parent"                 android:layout_height="?attr/actionBarSize"                 app:layout_constraintStart_toStartOf="parent"                 android:theme="@style/ToolbarTheme"                 app:layout_constraintTop_toTopOf="parent"                 app:layout_constraintEnd_toEndOf="parent"                 android:id="@+id/toolbar"                 android:background="@color/colorPrimary"                 app:layout_constraintBottom_toTopOf="@+id/navHost"/>

        <!--导航碎片-->

        <fragment                 android:name="androidx.navigation.fragment.NavHostFragment"                 android:layout_width="0dp"                 android:layout_height="0dp"                 app:navGraph="@navigation/navigation_mobile"                 app:defaultNavHost="true" android:id="@+id/navHost"                 app:layout_constraintTop_toBottomOf="@+id/toolbar"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintStart_toStartOf="parent"                 app:layout_constraintBottom_toTopOf="@+id/navBTM"/>

        <!--底部导航菜单-->

        <com.google.android.material.bottomnavigation.BottomNavigationView                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 app:menu="@menu/bottom_menu"                 app:layout_constraintStart_toStartOf="parent"                 app:layout_constraintEnd_toEndOf="parent"                 app:layout_constraintBottom_toBottomOf="parent"                 android:id="@+id/navBTM"                 app:layout_constraintHorizontal_bias="0.0"                 app:layout_constraintTop_toBottomOf="@+id/navHost"/>

    </androidx.constraintlayout.widget.ConstraintLayout>

    <!--侧边栏放在抽屉布局底部才能实现侧滑-->

    <com.google.android.material.navigation.NavigationView             android:layout_width="wrap_content"             android:layout_height="match_parent"             android:layout_gravity="start"             app:menu="@menu/slide_menu"             android:fitsSystemWindows="true"             app:headerLayout="@layout/header_layout"             app:layout_constraintStart_toStartOf="parent"             app:layout_constraintEnd_toEndOf="parent"             app:layout_constraintTop_toTopOf="parent"             android:id="@+id/slideView"/>

</androidx.drawerlayout.widget.DrawerLayout>

首先在res文件夹下新建一个安卓资源目录 navigation

image

建一些碎片,可分如下两种方法

在导航面板点击按钮创建, 当页面太多,需要点击右上角闪亮的星星按钮,调整为漂亮的格式。

image

* 右键新建找到碎片,如果是MVVM架构需要 Fragment+ViewModel, 如果不是就选择普通的

[图片上传中...(image-405d78-1543726827274-1)]

在主活动绑定上导航控制器,侧滑和底部都要绑定

image

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示 | 支付宝红包
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们