公司动态

Android入门教程 | DrawerLayout 侧滑栏

📅 2026/8/27 18:42:25
Android入门教程 | DrawerLayout 侧滑栏
DrawerLayout 是实现了侧滑菜单效果的控件。DawerLayout 分为侧边菜单和主内容区两部分主内容区要放在侧边菜单前面还有就是主内容区最好以 DrawerLayout 最好为界面的根布局否则可能会出现触摸事件被屏蔽的问题。侧滑菜单部分的布局必须设置 layout_gravity 属性表示侧滑菜单是在左边还是右边设置了 layout_gravity“start/left” 的视图才会被认为是侧滑菜单。使用的注意事项主内容视图一定要是 DrawerLayout 的第一个子视图主内容视图宽度和高度需要 match_parent必须显示指定侧滑视图的 android:layout_gravity 属性 android:layout_gravity “start” 时从左向右滑出菜单 android:layout_gravity end时从右向左滑出菜单 不推荐使用left和right!!!侧滑视图的宽度以dp为单位不建议超过320dp(为了总能看到一些主内容视图) 设置侧滑事件mDrawerLayout.setDrawerListener(DrawerLayout.DrawerListeneDrawerLayout 示例要使用 DrawerLayout可以在 layout xml 文件中将 DrawerLayout 设置为根视图。从左边滑出的抽屉视图侧滑栏一个简单的从左边滑出侧滑栏的例子。侧滑栏滑出后后面的视图会有个阴影。layout 文件?xml version1.0encodingutf-8?androidx.drawerlayout.widget.DrawerLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:openDrawerstartRelativeLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_centerInParenttrueandroid:text我是主页//RelativeLayoutRelativeLayoutandroid:layout_width250dpandroid:layout_heightmatch_parentandroid:layout_gravitystartandroid:background#ffffffTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_centerInParenttrueandroid:text我是侧滑栏//RelativeLayout/androidx.drawerlayout.widget.DrawerLayout效果需要注意的是DrawerLayout 要设置tools:openDrawerstart而且侧滑栏layout要设置android:layout_gravitystart。如果改成tools:openDrawerend侧滑栏 layout 要设置android:layout_gravityend。侧滑栏可以从右边滑出。现在侧边栏放的是RelativeLayout。 也可以放一个RecyclerView。抽屉出来时推动页面监听侧滑栏的滑动事件使用ActionBarDrawerToggle。侧滑栏滑出时在onDrawerSlide方法中计算出滑动的距离。 然后主视图设置水平相对偏移距离setTranslationX即可。可在activity的onCreate方法执行配置操作DrawerLayout rootfindViewById(R.id.root);final View contentViewfindViewById(R.id.content_field);ActionBarDrawerToggle actionBarDrawerTogglenewActionBarDrawerToggle(this,root,android.R.string.yes,android.R.string.cancel){OverridepublicvoidonDrawerSlide(View drawerView,float slideOffset){super.onDrawerSlide(drawerView,slideOffset);float slideXdrawerView.getWidth()*slideOffset;contentView.setTranslationX(slideX);}};root.addDrawerListener(actionBarDrawerToggle);改变滑出时的阴影使用 DrawerLayout 的setScrimColor方法改变阴影颜色。默认的阴影颜色是DEFAULT_SCRIM_COLOR 0x99000000。DrawerLayout rootfindViewById(R.id.root);root.setScrimColor(Color.TRANSPARENT);锁定 DrawerLayoutroot.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);// 解锁root.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);// 不检测从左到右的滑动动作最后分享一份【腾讯技术团队出品】Android零基础入门到精通Android Studio安装教程全套安卓基础教程Android编程入门教程Java语言基础从入门到熟悉Kotlin语言基础从入门到熟悉Android 技术栈从入门到熟悉Android Jetpack 全家桶全面学习对于新手来说可能安装Android Studio存在一定困难你可以看着以下视频一步步的跟着学习安装运行Android Studio 安装教程有了Java阶段的学习这一阶段建议以视频学习为主辅以图书查漏补缺。如果以图书为主可以根据图书讲解敲代码辅以教学视频查漏补缺。遇到问题可以去百度入门的问题一般会有很多人遇到并且给出比较好的解答。需要掌握基本知识点比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画、网络通信等常见技术。全套零基础教程已经为你们准备好了需要的可以添加下方二维码免费领取全套安卓基础教程