AndoidX 中 DrawerLayout 的使用

DrawerLayout(侧滑栏)详解,仿QQ消息列表(置顶、删除) QQ消息列表的侧滑栏菜单,以及置顶效果、删除效果有没有想过怎么做?来吧,仅需5分钟! 阅读详情

为何要使用 AndroidX

由于 android.support 中结构过于混乱,Google 已推出 AndroidX 来代替 support 包,且不再对 support 提供更新支持

Existing packages, such as the Android Support Library, are being refactored into AndroidX.
Although Support Library versions 27 and lower are still available on Google Maven,
all new development will be included in only AndroidX versions 1.0.0 and higher.

何为 DrawerLayout

DrawerLayout 是 Google 推出的一款能够实现侧滑效果的控件,可以实现如同网易云音乐的左侧菜单效果。实现简单,且提供了很多操作方法,可满足日常的使用。由于 AndroidX 已替代 support 使用,故 DrawerLayout 类目前位于 androidx.drawerlayout.widget 包下。

添加并使用 DrawerLayout

通过布局文件添加 DrawerLayout

DrawerLayout 作为界面的顶层容器,允许用户从界面的一个或两个垂直侧边缘拖拽出界面。建议将 DrawerLayout 做为界面的根布局来使用,以避免可能会出现的触摸事件被屏蔽问题

通过以下代码即可将 DrawerLayout 添加至布局。

<?xml version="1.0" encoding="utf-8"?>

<androidx.drawerlayout.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/DrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</androidx.drawerlayout.widget.DrawerLayout>

通过布局文件设计 DrawerLayout

DrawerLayout 包含主界面和侧滑界面。对于 DrawerLayout 内的界面布局有以下几个要求:

  1. 主界面布局一定要位于所有侧滑界面布局之前,宽度与高度应设置为 match_parent ,并且不能包含 layout_gravity 标签。
  2. 侧滑界面必须设置 layout_gravity 属性,且当该属性值为 start 或 left 时该侧滑界面从左侧滑出,当该属性值为 end 或 right 时,该侧滑界面从右侧滑出。
  3. 侧滑界面的高度属性建议设定为 match_parent ,宽度属性建议设置为一个常数。
  4. 界面任意一个垂直边缘最多允许配置一个侧滑界面,如果在布局时为单个垂直边缘配置了多个侧滑界面,则运行时将引发异常。

通过一下代码创建了一个主界面,采用 LinearLayout 布局,一个侧滑界面,采用LinearLayout 布局,宽度设置为300dp,并设置该侧滑界面从左侧滑出。

<?xml version="1.0" encoding="utf-8"?>

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/DrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/main_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"/>

    <LinearLayout
        android:id="@+id/left_layout"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_gravity="start">
    </LinearLayout>

</androidx.drawerlayout.widget.DrawerLayout>

通过代码操作 DrawerLayout

通过 id 可以获取到布局文件中插入的 DrawerLayout 对象来进行操作, DrawerLayout 类提供了包括以下展示的多个函数来进行操作。

监听侧滑界面的展开状态

通过添加侦听器来侦听侧滑界面的展开状态, DrawerLayout 提供了以下两个方法来添加侦听器:

void setDrawerListener(DrawerLayout.DrawerListener listener)

DrawerLayout.DrawerListener 包含以下四种抽象方法来侦听侧滑界面展开的状态

void onDrawerClosed(View drawerView) \\ 当侧滑界面处于完全关闭状态时被调用
void onDrawerOpened(View drawerView) \\ 当侧滑界面出语完全打开状态时被调用
void onDrawerSlide(View drawerView, float slideOffset) \\ 当侧滑界面的位置改变时被调用
\\slideOffset 代表侧滑界面的位置,范围为 0~1 
void onDrawerStateChanged(int newState)  \\ 当侧滑界面的运动状态改变时被调用

需要注意的是避免再动画播放期间执行例如界面布局类型的复杂操作,以避免动画出现卡顿。

控制侧滑界面状态

DrawerLayout 提供了以下方法操作侧滑界面

void closeDrawer(View drawerView) \\ 关闭侧滑界面
void openDrawer(View drawerView) \\ 打开侧滑界面
boolean isDrawerOpen(View drawer) \\ 判断侧滑界面是否处于打开状态

以上三个个方法的传入参数均应是侧滑界面布局对象。例如,打开上个例子中创建的左侧侧滑界面

DrawerLayout drawerLayout = findViewById(R.id.DrawerLayout);
drawerLayout.openDrawer(findViewById(R.id.left_layout));

详情请查阅 官方文档

3D模型 在Android Studio 中的应用 总之啊,家里没矿的同学们,如果你们想以后的日子过得好一些,多想想你们的业余时间怎么安排吧;技术方面的提升肯定是重中之重,但是技术外的一些“软实力”也不能完全忽视,很多时候升职确实是因为你的技术足够强,但也与你的“软实力”密切相关在这我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。 阅读详情

相关推荐

Android开发-29】Android中滑动菜单DrawerLayout用法介绍

AndroidDrawerLayout和NavigationView的用法代码介绍

jiangchaobing_2017的博客 1675

Android 滑动菜单(DrawerLayout + NavigationView )

1.主内容视图一定要是DrawerLayout的第一个子视图且宽度和高度需要match_parent。 2.侧滑菜单必须添加android:layout_gravity属性,推荐使用 start|end,不推荐使用left|right。 3.侧滑视图的宽度以dp为单位,官方建议一般小于320(为了总能看到一些主内容视图)。 4.设置侧滑事件:mDrawerLayout.setDrawerListener(DrawerLayout.DrawerListener);

帅次的博客 2985

DrawerLayout侧滑详简总结

侧滑主要重点布局:DrawerLayout+RelativeLayout+FrameLayout,在DrawerLayout中RelativeLayout布局一定要设置android:layout_gravity=""属性。DrawerLayout是抽屉侧滑导航栏,以隐藏状态布局在屏幕边缘。

全栈 1275

Android 抽屉组件DrawerLayout的简单使用

对于点击屏幕上按钮,从屏幕外上下左右划出一个菜单的场景,Android原生的DrawerLayout简单实用,这里记录一下 <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/home_drawer_lay

diaostar的博客 2565

Android-----DrawerLayout使用

1, 谷歌建议跟布局使用DrawerLayoutDrawerLayout是V4包里的控件; 2  给DrawerLayout中的控件设置一下两种属性,属性设置给谁,侧拉出来的就是谁;可以设置给图片, 按钮 ListView等等; android:layout_gravity="left" android:choiceMode="singleChoice" ---

why_111的博客 248

安卓侧滑菜单DrawerLayout

点击左侧滑动 效果如下 代码实现过程: 1.导入框架build.gradle中 //materialDesign implementation 'com.google.android.material:material:1.0.0' 2.xml文件 主要的界面放在DrawerLayout 中,需要强调的是侧滑菜单也就是下图显示的TextView一定要设置layout_gravity属性,我是从左侧滑动的,所以设置为start <androidx.drawerlayout.widget.D

qq_36914492的博客 411

Android支持库DrawerLayout

介绍 DrawerLayoutAndroid v4 包中实现了侧滑菜单效果的布局,它显示在屏幕的最左侧,默认情况下是隐藏的,当用户用手指从屏幕左侧向右侧滑动时该组件将显示,单击该布局外侧或者向原来的方向滑动时该组件消失,例如,图 7.16 所示的这款 App 就使用了该组件实现隐藏在左侧的菜单。 用法 DrawerLayout 是一个布局文件管理器,在这个布局当中允许放入 2 个组件或者是布局,第 1 个用于显示在主屏幕当中,第 2 个用于显示滑动菜单中的内容,在设置滑动菜单实现的内容时在该

Black_Cat_33的博客 3831

Android入门教程 | DrawerLayout 侧滑栏

DrawerLayout 是实现了侧滑菜单效果的控件。

Android23333的博客 1998

AndroidX抽屉布局

抽屉布局(DrawerLayout) 本项目所需要用到的依赖 implementation 'androidx.drawerlayout:drawerlayout:1.0.0' 布局文件 <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ap

毅哥的博客 1493

Android 侧滑抽屉菜单

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_83601703的博客 1344

105.DrawerLayout 和 NavigationView

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

2303_79132118的博客 435

Android开发侧边栏(DrawerLayout、NavigationView、Toolbar),Java && Kotlin(主要用于个人的学习记录)

Android开发侧边栏(DrawerLayout、NavigationView、Toolbar),Java && Kotlin

qq_63050093的博客 4369

Android DrawerLayout用法详解

Android 官方支持的布局容器,用于实现侧边滑出的导航抽屉效果(Navigation Drawer)。广泛应用于包含多个导航项的 App 中,例如邮箱客户端、新闻阅读器、社交类应用等。支持左侧/右侧抽屉(或同时存在)支持滑动手势与菜单图标触发与和 Jetpack Navigation 组件良好兼容支持 Material Design 风格确保你的主题继承自,以获得最新 UI 支持。你可以自定义一个布局用于的属性。plaintext12345xml复制编辑。

XHRK1的博客 1800

实现Android侧滑栏效果的DrawerLayout实例

随着移动设备用户界面设计的不断进化,拥有流畅的导航体验已成为用户界面设计的关键要素。Google推出了DrawerLayout组件以满足这一需求,它为Android应用提供了侧滑式导航抽屉功能。这种抽屉式导航模式不仅提高了界面的可访问性,还增强了用户体验。本文将深入探讨DrawerLayout的基础知识,并展示如何在应用中有效地使用它。DrawerLayout允许开发者在屏幕边缘创建一个可滑动的视图,通常放置于主视图的左侧或右侧。

weixin_36300623的博客 907

Android使用DrawerLayout布局实现侧滑菜单

NavigationView 是用来显示菜单项的视图,通过 app:menu 属性指定菜单项的资源文件,通过 app:headerLayout 属性指定菜单的头部布局文件。3.设置DrawerLayout监听和菜单点击事件: 在你的Activity或Fragment中,设置 DrawerLayout 的监听和处理菜单项的点击事件。2.准备布局文件: 在你的布局文件中,使用 DrawerLayout 作为根布局,包含主内容和侧滑菜单。// 设置ActionBar上的导航按钮,用于打开/关闭侧滑菜单。

2401_84182482的博客 612

Android侧滑菜单实现:深入掌握DrawerLayout

本文还有配套的精品资源,点击获取 简介:介绍了AndroidDrawerLayout 组件的使用方法,这是实现侧滑菜单的关键布局。通过XML布局配置、代码中滑动事件监听以及汉堡菜单触发器的实现,可以创建一个包含主内容和可滑动抽屉视图的用户界面。文章还包括了如何填充抽屉内容和处理菜单项点击事件的详细步骤,为开发者提供了一个功能完善的侧滑菜单实现方案。 1. Dr...

weixin_42590539的博客 2835

AndroidDrawerLayout (官方侧滑菜单)的简单使用

官方给我们提供的一个侧滑菜单 控件,和上一节的ViewPager一样,3.0以后引入,低版本使用它,需要v4兼容包,说到侧滑,相信 很多人都用过github上的SlidingMenu,不过好像有两个版本,一个是单独的,另一个需要依赖另一 个开源项目:ActionBarSherlock;嗯,不知道你有没有发现,从上面的DrawerLayout的布局,我们大概可以猜到,DrawerLayout 最多由三个部分组成,中间的内容部分,左边的侧滑菜单部分,右边的侧滑菜单部分组成!当然你可以根据自己的需求进行扩展!

leyang0910的博客 7255
上一篇: [USACO07OPEN]城市的地平线City Horizon——优先队列
下一篇: Ubuntu 20.04 非代理 全命令行 安装 hyperledger fabric 2.2.0
Snitro
博客等级 码龄10年 27粉丝 35原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值