NavigationView和DrawerLayout实现侧滑菜单栏

NavigationView 与 DrawerLayout 的使用(Kotlin) 文章目录背景DrawerLayout 介绍NavigationView 介绍实现效果 背景 DrawerLayout 介绍 DrawerLayout 是一种布局,可以实现两个界面,一个是主屏幕,另一个是通过滑动的方式将一些隐藏的菜单显示出来,最显著的例子便是 Google play store。DrawerLayout 的布局文件中可以放两个同级的控件,其中第一个为主屏幕的显示内容,第二个为侧边滑动菜单的显示内容。形式如下: <?xml version="1.0" encoding="utf-8"?& 阅读详情

DrawerLayout可以实现左滑和右滑功能,只要在layout文件中配置好左右两个抽屉就可以了,左右两个抽屉可以是任意的view,结合NavigationView可以很好实现侧滑菜单的功能

要使用DrawerLayout,需要v4包,使用NavigationView,需要v7包

实例:

上面的效果可以很容易的实现,其主要体现在布局上:

一、主布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.qf.drawlayouttest.MainActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <android.support.design.widget.NavigationView
        android:id="@+id/nvLeft"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="left"//表示左滑 ,如果设置为right则表示右滑
        app:headerLayout="@layout/layout_nvhead"
        app:menu = "@menu/mymenu"
        />
</android.support.v4.widget.DrawerLayout>
二、给抽屉添加一个标题头的布局:

headerLayout就是给导航栏增加一个头部Layout。

menu就是对应菜单项的选择条目。

navigation_header.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#24B1F5">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="text"
        android:textSize="50dp"
        android:textColor="#ffffff"
        />
</RelativeLayout>

三、给抽屉添加对应菜单项的选择条目:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/item_one"
android:icon="@mipmap/icon"
android:title="我的动态"></item>
<item
android:id="@+id/item_two"
android:icon="@mipmap/icon"
android:title="我的留言"></item>
<item
android:id="@+id/item_three"
android:icon="@mipmap/icon"

android:title="附近的人"></item>

</group>

</menu>
四、设置navigationview的菜单响应:

//设置导航栏NavigationView的点击事件
NavigationView mNavigationView = (NavigationView) findViewById(R.id.navigation_view);
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case R.id.item_one:
                getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new FragmentOne()).commit();
                mToolbar.setTitle("我的动态");
                break;
            case R.id.item_two:
                getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new FragmentTwo()).commit();
                mToolbar.setTitle("我的留言");
                break;
            case R.id.item_three:
                getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new FragmentThree()).commit();
                mToolbar.setTitle("附近的人");
                break;
        }
        menuItem.setChecked(true);//点击了把它设为选中状态
        mDrawerLayout.closeDrawers();//关闭抽屉
        return true;
    }
});

一个抽屉的简单实现大概就是这些步骤,具体的实现功能,也就和这个技术关系不大。代码该咋写,还得咋写。之前看到QQ,还有csdn的APP,还有很多APP多使用了这种技术,当时觉得很拗的样子,现在觉得也就是那么回事。



Android应用开发中的侧滑菜单栏 本文介绍了如何在Android应用中创建一个具有侧滑菜单栏的界面。在Android应用开发中,侧滑菜单栏是一种常见的用户界面设计模式,它可以提供方便的导航和功能选项。本文将介绍如何在Android应用中创建一个具有侧滑菜单栏的界面,并提供相应的源代码。注意:以上代码是基于support包的旧版API,如果你使用的是最新版的AndroidX库,则需要相应地修改引入的包和代码,以适配最新的Android开发规范。通过上述代码,我们实现了一个具有侧滑菜单栏的Android界面。 阅读详情

相关推荐

NavigationView实现侧滑菜单栏

将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果

NavigationView导航视图与DrawerLayout绘制布局

NaviagtionView(导航视图)需与DrawerLayout(绘制布局)配合使用。 DrawerLayout中的Navigation有两种表现方式,左划出和右划出,可在标签中使用android:layout_gravity属性设置,值为start时为左划出,为end时为右划出。一个DrawerLayout中可以同时含有左划出和右划出的两个导航视图,和Activity主体空间。 NaviagtionView中有两部分,上部分的header和下部分的menu,可在可在

m0_57150356的博客 1524

Android 通过NavigationView+DrawerLayout来实现侧滑菜单的功能和点击事件+弹出对话框

Android 通过NavigationView+DrawerLayout来实现侧滑菜单的功能和点击事件+弹出对话框,有需要的下载来看看

105.DrawerLayout 和 NavigationView

DrawerLayout 是 AndroidX 中提供的一个布局容器(类全名为 androidx.drawerlayout.widget.DrawerLayout),用于实现侧滑抽屉效果(Navigation Drawer)。使用 DrawerLayout,你可以将主内容区域和侧滑抽屉区分开来,抽屉部分通常会通过滑动手势从屏幕一侧(一般是左侧)滑出。通常将主内容放在第一个子元素,然后放置抽屉视图(通常使用 NavigationView 或自定义布局)做为第二个子元素。

2303_79132118的博客 442

统信UOS/麒麟ARM桌面版,不联网也能用Docker部署MySQL 5.7(离线部署详解)

本文详细介绍了在统信UOS/银河麒麟ARM桌面版系统中,如何离线部署MySQL 5.7的完整流程。通过Docker技术实现环境隔离和依赖封装,解决了封闭网络环境下的部署难题,包括资源准备、系统配置、容器化部署及安全加固等关键步骤,为政企和科研场景提供实用解决方案。

weixin_30892037的博客 230

LiteOS | 基于LiteOS的智慧农业案例实验分享

分享一个基于小熊派+LiteOS+华为云的案例实验(智慧农业)。 实验框图 相关模块简介 1、STM32L431RCT6 2、LiteOS LiteOS是华为开发的轻量级实时操作系统: LiteOS源码GitHub仓库链接: https://github.com/LiteOS/LiteOS 其源码一级目录结构如下: 其内核包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管...

嵌入式大杂烩 5990

Android5.0之NavigationView的使用

导航菜单的制作方式多种多样,网上也有各种炫酷效果的具体实现方式,那么今天我主要是想来说说Google在Android5.0之后推出的NavigationView的具体使用方式。NavigationView在很多App上都已经可以看到其效果图,国内的比如知乎(侧拉菜单滑出来的那一部分属于NavigationView),如下图:还有Google自己的那些app,也基本全都采用了Navigation...

weixin_30580943的博客 1100

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273

Android DrawerLayout和NavigationView 的使用方法

1、DrawerLayout 侧拉菜单作为常见的导航交互控件,最开始在没有没有android官方控件时,很多时候都是使用开源的SlidingMenu。使用DrawerLayout可以轻松的实现抽屉效果。DrawerLayout 在android.support.v4.widget.DrawerLayout这个包里。这里只说DrawerLayout最简单的实现,相当于hello world

laxian2009的专栏 1万+

Vivado SDK中LWIP库版本冲突与RTL8211FDI兼容性实战解析

本文深入解析Vivado 2019.1 SDK中LWIP 1.0库与RTL8211FDI千兆PHY芯片的版本冲突问题,并提供实战解决方案。通过手动移植高版本LWIP库、整合第三方驱动及优化BSP配置,有效解决了以太网通信兼容性问题,确保千兆性能稳定运行。

ios99的博客 273

学Simulink——基于Simulink的固态变压器(SST)多级协同控制​

本文介绍了基于Simulink的固态变压器(SST)多级协同控制系统设计与仿真方法。SST作为智能电网关键设备,包含AC-DC整流、DC-DC隔离和DC-AC逆变三级变换器。针对级间耦合问题,提出了能量-功率协同控制策略,通过纵向解耦和横向联动实现稳定运行。详细演示了在Simulink中搭建三级主电路、设计协同控制器(含电网定向控制、功率前馈和虚拟惯性控制)的全过程,并通过负载突变测试验证了系统动态性能(直流母线电压波动<2%)。最后给出了工程部署建议,包括数字控制延时补偿、启动序列设计和代码自动生成

xiaoheshang_123的博客 206

Material Design之NavigationView和DrawerLayout实现侧滑菜单栏

本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design包下的一个控件,该包下还有AppBarLayout、CoordinatorLayout、FloatingActionButton、SnackBar、TabLayout控件,也是Google在Andro

【博客地址迁移到】:https://zhengxiaoyong.com 7058

IDM 的免费替代品来了!这款开源下载器速度提升500%

💡分享一款开源的下载管理工具,支持多线程加速(最高提升500%)、队列管理、计划任务和浏览器集成,界面现代化且支持深色模式,跨平台支持Windows/Linux,是IDM的优秀替代方案🎈

XiaoqiangClub的博客 730

MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏

本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design包下的一个控件,该包下还有AppBarLayout、CoordinatorLayout、FloatingActionButton、SnackBar、TabLayout、TextInputLayout等

琦琦的博客 1459

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的田间杂草检测系统(深度学习模型+UI界面+Python代码+训练数据集)

精准农业是现代农业发展的核心方向,其中杂草的实时、准确检测是减少除草剂滥用、实现变量喷施的关键技术瓶颈。本文详细阐述了一套完整的、基于YOLO(You Only Look Once)系列目标检测算法的田间杂草检测系统。系统覆盖从模型对比选型(YOLOv5, YOLOv6, YOLOv7, YOLOv8)、自定义数据集构建与标注、模型训练与优化,到最终构建基于PyQt5/FastAPI/Gradio的可视化UI界面的全流程。本文提供了完整的Python代码、项目结构、训练技巧及公开数据集指引,旨在为农

YOLO 357

Istio ICA考试之路---3-2

部署2个测试容器,分别是test和test2.test注入标签subset=v1。这里文档中省略了metadata的3行,可以从前面任意一个yaml复制粘贴过来。通过test2测试容器访问,50%概率触发500故障注入。通过test测试容器访问,20%概率触发延迟注入。发起20次请求,一共10次被500。

Q先生 725

Android 用 DrawerLayout 和 NavigationView 实现侧滑菜单栏

侧滑菜单是很多 APP 中常见的功能效果,今天我们将介绍使用 Material Design 中的 DrawerLayout 和 NavigationView 相结合来实现侧滑栏菜单效果,借助Google提供的这些工具实现侧滑的功能将变得异常的简单,侧滑菜单可以将菜单选项隐藏起来,然后可以通过滑动的方式来显示,这样很好的节省了手机屏膜的空间,这也是 Material Design 设计中非常推荐的

QDJdeveloper 2431

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

DrawerLayout配合NavigationView简单实现侧滑菜单栏

什么是DrawerLayoutDrawerLayout谷歌官方出品的侧滑菜单控件,在support-V4包下,可以自由实现侧滑菜单内的内容。什么是NavigationView如果说DrawerLayout是侧滑菜单的实现,那么NavigationView是谷歌为开发者提供好的一种侧滑菜单风格,简单易用,快速实现Material Design风格开发准备在gradle下 dependencies

一颗烂葱的博客 2951

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

侧滑菜单栏使用DrawerLayout和NavigationView实现

DrawerLayout大家应该都不陌生,在实现侧滑菜单的时候回大量用到这个控件。 使用它来实现侧滑菜单只需要布局中设置好 侧滑菜单栏以及主要显示区域就可以 侧滑菜单栏可以是一个显示的布局,用RelativeLayout或者Linnerlayout等布局都可以写出左侧布局想要的效果,今天 要用的主角是NavigationView,实现侧滑菜单更加简单(因为他本身即是一个侧滑布局)

xiaoqiang_0719的博客 3148

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏(抽屉)

DrawerLayout可以实现左滑和右滑功能,只要在layout文件中配置好左右两个抽屉就可以了,左右两个抽屉可以是任意的view,结合NavigationView可以很好实现侧滑菜单的功能 要使用DrawerLayout,需要v4包,使用NavigationView,需要v7包 实例: xmlns:android="http://schemas.android.com/apk

手指乐 4659

Material Design系列风格控件之(二)----NavigationView和DrawerLayout实现侧滑菜单栏

一、简介 DrawerLayout可以轻松的实现抽屉效果、在DrawerLayout中,第一个子View必须是显示内容的view,第二个view是抽屉view,设置属性layout_gravity=”left|right”,表示是从左边滑出还是右边滑出。  NavigationView是Android M中提出一个新的MD风格的组件,它将自己一分为二,上面显示一个通用的布局,下

fendo 1508

Material Design控件使用(二)

本文介绍如何使用DrawerLayout和NavigationView实现侧滑菜单栏的效果。

阳春面的专栏 750

android 主题初始化,Android Material Design系列之Navigation Drawer

从今天开始,我们讲一个关于Material Design风格控件系列的文章。个人认为Material Design风格还是非常漂亮和好看的。关于Material Design的控件,从今天这篇开始一个一个的讲,希望能够对大家有所帮助。Material Design系列控件,我们今天就先从侧滑菜单栏开始,侧滑菜单栏通过名字我们就知道包含两部分,一部分是侧滑(DrawerLayout),一部分是导航菜...

weixin_29557457的博客 176

Android Material Design系列之Navigation Drawer

从今天开始,我们讲一个关于Material Design风格控件系列的文章。个人认为Material Design风格还是非常漂亮和好看的。关于Material Design的控件,从今天这篇开始一个一个的讲,希望能够对大家有所帮助。 Material Design系列控件,我们今天就先从侧滑菜单栏开始,侧滑菜单栏通过名字我们就知道包含两...

weixin_33795743的博客 88
上一篇: android开发之二维码
下一篇: 编码和加密算法的使用(MD5、Base64、DES、RSA)
program008
博客等级 码龄11年 5粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值