首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我在安卓DrawerLayout外部触摸时,如何关闭它?

当您在安卓DrawerLayout外部触摸时,可以通过以下步骤关闭它:

  1. 在您的Activity或Fragment中,找到DrawerLayout对象的引用。
  2. 使用setDrawerLockMode()方法将DrawerLayout锁定为LOCK_MODE_LOCKED_CLOSED,以禁止用户通过滑动手势打开抽屉菜单。
  3. 在您的布局文件中,找到DrawerLayout外部的父容器视图,并为其设置一个触摸监听器。
  4. 在触摸监听器的onTouch()方法中,检查触摸事件的动作类型。如果动作是ACTION_DOWN(按下),则调用DrawerLayout的isDrawerOpen()方法来检查抽屉菜单是否已打开。如果是打开状态,则调用closeDrawer()方法关闭抽屉菜单。

以下是一个示例代码:

代码语言:java
复制
DrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

View parentView = findViewById(R.id.parent_view);
parentView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN && drawerLayout.isDrawerOpen(GravityCompat.START)) {
            drawerLayout.closeDrawer(GravityCompat.START);
            return true;
        }
        return false;
    }
});

请注意,上述代码中的R.id.drawer_layoutR.id.parent_view是示例中的布局文件中的对应视图的ID。您需要根据自己的布局文件进行相应的更改。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品提供了移动应用数据分析、用户行为分析、漏斗分析等功能,帮助开发者深入了解用户行为和应用性能。产品介绍链接地址:https://cloud.tencent.com/product/mta

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

拖拽,自由组合,让你的开发更加简单,用户更方便

2 效果图 说一千道一万,不如看实践,那就一起来欣赏一下效果图的效果如何吧? ? ? 你们感觉如何?...3.2 其次 其次,就该讨论拖拽的问题了,如何实现拖拽呢?有没有更好的,简单的方式呢?难道只能自己实现触摸事件,判断是哪个控件,计算 X , Y 坐标移动呢?非也,其实有简单的好办法。...ViewDragHelper 解决了 Android 中手势处理过于复杂的问题, DrawerLayout 出现之前,侧滑菜单都是由第三方开源代码实现的,其中著名的当属 MenuDrawer ,MenuDrawer...如果每个开发人员都从这么原始的步奏开始做起,那对于生态是相当不利的。所以说 ViewDragHelper 等的出现反映了开发框架已经开始向成熟的方向迈进。...关于 ViewDragHelper 的具体用法,这里不过多赘述,想了解的,在网上一搜,有非常多的文章都在介绍的基本使用方法。 3.3 再次 再次,我们该如何把拖动的视图的位置,保存住呢?

1.1K60

Android Focusable in Touch Mode 介绍

下面总结 官方文档 Touch Mode 的介绍: Touch Mode 由于现在手机基本都是触摸屏,导致我们没有意识到 Touch Mode 其实是一种特殊的状态,不同于 Selection,...几年前,有些手机上面还保留着键盘、触摸球(上图红色圈内),这个触摸球的作用相当于现在电视遥控器的上下左右键。...当我们用手触摸屏幕选中内容后,会进入 Touch Mode; 但是当我们用触摸球左右移动(按下遥控器方向键也一样),就会离开 Touch Mode; 听起来似乎很简单,但是一个控件还有其他状态,当这些状态切换...现在的应用开发比那个年代要轻松多了,但是物联网发展下,我们还要考虑智能电视等其他智能设备的这些输入情景。...当我们设置 ListView 的 focusableInTouchMode 为 false 的 item 也无法获取不到焦点,这在有的场景下会有用处。

1.6K60
  • 详解如何将 Android 手机投屏 Ubuntu 上

    传输中每一帧都有 时间戳 ,所以 包延变化 并不影响录制的文件。 3. 连接方式 (1). 无线 Scrcpy 使用adb来与设备连接。...同时,adb能够通过TCP/IP连接到设备: 将您的设备和电脑连接至同一Wi-Fi。 获取设备的IP地址(设置-关于手机-状态信息)。...显示触摸 展示,有些时候可能会用到显示触摸点这项功能(设备上显示)。 Android 开发者设置 中提供了这项功能。...Scrcpy 提供一个选项可以启动开启这项功能并在退出恢复初始设置: scrcpy --show-touches scrcpy -t 请注意这项功能只能显示 物理 触摸(要用手屏幕上触摸)。...双击黑色边界以关闭黑色边界 点击鼠标右键将在屏幕熄灭时点亮屏幕,其余情况则视为按下 返回键 。 需要版本 Android >= 7。

    3.5K10

    触控一体机为何越来越多人使用,系统还是Windows系统

    android一体机可以根据用户的不同需求拓展各种不同的硬件外接设备和各种应用软件,环境适应能力又强,所以诸多领域的应用都非常受欢迎,并且还在不断地开拓新市场。系统触摸一体机占据绝对性优势。...1、首先,系统坚持了的开放性,为消费者和开发者同时留出了空间。这是能够快速成长的关键因素。之前,没有任何一个智能操作系统的开源程度能够像一样。免费开源的系统节约了版权费用。...2、其次,系统是基于Linux内核,但是在内核上面做了很多工作,智能手机的系统具有高效率、低能高的特点。...3、系统对WIFI/3G、多点触控模式的良好支持,以及市场大量免费的应用,使得其成本再一次降低。 4、系统的稳定性、安全性作为一个行业应用,系统的稳定性是重中之重。...5、更注重用户视觉和操作感受,更适合触摸广告机这种强调多媒体展示效果,吸引眼球的应用开发,而且因为Android程序大多基于java开发,与Windows程序开发相比,降低了开发难度,缩短了应用上市时间

    1.2K10

    cocos2dx 触摸钢琴

    1.触摸钢琴项目描述 1.1触摸钢琴功能描述 实现手指点按琴键发出对应的音调,按下位置出现星云的粒子特效,滚动实现移动到别的琴键的位置,按下返回键执行关闭。...1.2触摸钢琴所需技术 粒子特效,按键监听。...注意:黑色琴键按钮的要通过cocostudio的对象结构树调整到白键的下面,这样点击黑键才会优先响应黑键。 通过Tag值遍历得每一个按钮控件,如果存在对应的按钮对象,就绑定响应。...if (btn) { btn->addTouchEventListener(this, toucheventselector(CPaino::onBtnTouch)); } } 响应函数...注意要在琴键当前层上挂载一个触控层。触摸的点处播放粒子特效。 2.3监听按键 初始化中增加允许接收按键事件的函数。

    13230

    程序算法|PHP、、C++程序代码交流

    Eclipse使用Activity模板快速新建Activity 2天前 浏览: 27 评论: 1 使用android studio的开发者可能发现和eclipse+ADT大同小异,个人用完android...studio之后发现android studio 除了界面比较炫酷以外,并没有多少优点.而且最被广大使用者诟病的内存占用大问题也没有解决:笔者发现,android studio比eclipse开发的时候更加占用内存...不过,android studio文件—新建的菜单中 Activity生命周期及其周期方法详解 3天前 浏览: 24 评论: 0 当Activity处于应用中运行时,的活动状态是由操作系统通过栈的方式进行管理的...下面是android的ACTIVITY生命周期的图示: ACTIVITY生命周期的的四个阶段 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和 响应触摸屏事件...3天前 浏览: 19 评论: 0 参看博文:BY战机——基于事件处理的飞机射击游戏 响应触摸屏事件 话不多说先上代码: [crayon-552f6f9e6f320993746441/] 关于public

    2.2K10

    挥别web移动端开发差异和经典坑

    滚动容器上增加滚动 touch 方法 .wrapper { -webkit-overflow-scrolling: touch; } 设置overflow : 设置外部 overflow 为 hidden...无此特性。 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。...(使用输入法输入的过程中) compositionend: 输入法编辑器的文本复合系统关闭触发,表示返回正常键盘输入状态(选中文字,输入法消失的那一刻) 判断限制: $('#input')....时间:201908 部分机器点击键盘发送相同内容 描述:部分机,如oppo 快速点击键盘发送,会发出2条一样的内容,防抖与节流均不生效; 时间:201907 微信公众号 微信授权回调带#...的URL跳转会出现空白 描述:手机,微信授权回调的函数中进行跳转至的URL不能带有#,但#号可放置结尾。

    2.9K20

    新手开发详细教程视频_手机解锁激活成功教程教程

    一、工程构建及第一个程序运行 二、工程结构介绍 三、app的启动过程简述 一、工程构建及第一个程序运行 使用的软件 – eclipse(ADT) 1....Package Explorer栏右键点击, New → Android Application Project Application Name: 安装到手机上应用程序显示的名字 (例如微信...Required SDK: 编译出来的应用程序, 要运行的, 支持的设备最低级要跑几 (默认就行) Target SDK: 目标的SDK版本 (高于18也可以, 最好不要低于18) Compile...当用户触摸到app的时候, 实际上会通过这个bind驱动去通知底层的一些服务框架, 比如system server, system server会去启动app的进程, app进程有一个application...(但这并不是我们目前需要知道的) 在这个阶段, 我们需要知道的是Launcher进程检测到用户触摸到app, 这个工程里面最先加载的应该是AndroidManifest.xml, 首先它会判断你的sdk

    1.5K10

    Android 10 终于来了!增加了不少新特性

    前言 Android 10 正式发布了,根据官网的介绍,聚焦于隐私可控、手机自定义与使用效率,此版本主要带来了十大新特性: [image] 智能回复 使用机器学习来预测你回复信息可能会说些什么,这项功能在...Android 10 中,已经内置到整个通知系统中,并且不仅提供对信息的回复建议,还可以获得建议的操作。...所有版本的 DrawerLayout 均提供 peek 支持,其中以 DrawerLayout 1.1.0-alpha02 的体验最优。...使用时,你可以选择只与应用程序共享位置数据。当你没有使用的应用程序访问你的位置,你也会收到提醒,以决定是否继续分享。...2、的外观和LOGO都将大改, 而新LOGO从一整个机器人的身体变成了头部 。这样标志显得大方简洁了不少.详情可以查看之前我写过的一篇文章:新LOGO刚刚出炉!

    1.3K40

    Android仿iOS侧滑退出当前界面功能

    我们都知道ios手机上面,有一个侧滑退出当前界面的功能,但是手机上系统没有给我们提供这样的功能,但是这依然阻挡不了强大的的定制功能,我们完全可以自己定制一套这样的功能。...(3)比较关键的是:当我们需要使用侧滑动能的Activity我们需要将它的主题设置成透明,这样滑动的时候就不会遮挡下面的Activity,代码如下: <style name="AppTheme.Slide...<item name="android:windowAnimationStyle" @style/AppTheme.Slide.Animation</item </style (4)当我们滑动超过半屏的时候...); }else{ scrollFinish(); } break; } return true; } 2)、滑动的偏移量超出屏幕的一办,就关闭当前界面否则回到初始位置...getScrollX(); mScroller.startScroll(startX, 0, dx, 0, 300); invalidate(); } /** * 向右滑动关闭

    1.7K10

    Material Design技术分享

    布局之间的滑动是如何相互影响的呢,就appbarlayout来举例,看看如何实现toolbar与布局中的RecyclerView(或者任何能滚动的控件)实现配合滑动。...,一旦CoordinatorLayout的触摸事件需要被响应,就会拦截到子view的触摸事件,并且后面的触摸事件流会被发送到behavior中的ontouchevent;后者是触摸事件的集中消费,如果behavior...的状态 2、自带home菜单的动画按钮,默认是三横变箭头 3、home菜单的点击事件   看代码中有一系列针对DrawerLayout的操作,除了实现DrawerLayout.DrawerListener...中创建的,吊起新的activity或者从activity返回,用来管理场景的退出和共享元素的退出。...Material Design的动画风格简洁而不失多样化,直观但高度迎合了用户体验,google原生的视觉与效果也越来越有设计感,但是要想实现google官方视频推荐中的很多动画其实还是很耗费时间的

    2.2K60

    电脑技巧| 使用电脑的经验分享

    电脑技巧 3天前 浏览: 17 评论: 0 参看博文:BY战机——基于事件处理的飞机射击游戏 按钮的监听事件 在上面的应用截图中我们看到游戏开始界面使用了"开始游戏"和"退出游戏"的两个按钮...两个按钮分别触发正式游戏和关闭游戏程序的两个行为。所以要为两个按钮的点击事件(OnClickListener)绑定监听器。...中为按钮绑定监听器的方式有两种:①布局文件中声明②代码中新建监听器并绑定; 实现"BY战机"中,我采用了第二种,即在 BY战机源代码——基于事件处理的飞机射击游戏 电脑技巧 3天前...浏览: 26 评论: 0 一、应用截图 二、代码实现 ①按钮事件实现 参看《响应按钮事件》 ②响应触摸屏事件 参看《响应触摸屏事件》 代码下载 Android开发解析JSON...其实这是电脑开机过程中自检的报警声,通过不同的报警声告诉用户电脑的故障发生在哪里,好让用户维修对症下药。

    2.6K20

    uSens推出手部骨骼追踪AR SDK,提供跨平台手部追踪和3D识别

    莉还说道:“这为开发者带来了全新的可能性,使得他们能够为主流受众创建真正独一无二的体验。...短短一年间里,uSens为什么可以没有外部硬件的情况下实现同样的追踪水平呢?关键是机器学习。   ...“它可以根据我们的算法提供骨骼信息和关节信息,不过的性能不如立体摄像头或深度摄像头,因为的视场更小。但是,我们相信它为一系列的用例提供了足够好的性能。”   ...尽管如此,虽然移动AR已经加速了消费者对AR的采用,但触摸屏仍然是用户和内容之间的障碍。回顾当前市场上最佳的移动AR应用程序时,我们可以马上想象手部追踪将能如何改善已有的优秀体验。   ...不过,uSens技术同样可以促进智能眼镜的更快速创新,特别是基于的可穿戴设备。随着精度和覆盖范围的提升,基于摄像头的追踪解决方案可以支持硬件厂商减掉专用深度传感器的需要。

    42710

    ApacheCN 译文集 20211225 更新

    十四、对话框窗口 十五、数组、地图和随机数 十六、适配器和回收器 十七、数据持久化和共享化 十八、本地化 十九、动画和插值 二十、绘制图形 二十一、线程和启动实时绘图应用 二十二、粒子系统和处理屏幕触摸...二十二、粒子系统和处理屏幕触摸 二十三、音效和旋转小部件 二十四、设计模式、多种布局和片段 二十五、带分页和滑动的高级用户界面 二十六、带有导航抽屉和片段的高级用户界面 二十七、数据库 二十八...、临别赠言 如何使用 Kotlin 构建安应用 零、前言 一、创建您的第一个应用 二、构建用户屏幕流 三、用片段开发用户界面 四、构建应用导航 五、基本库:RetroFit 库、Moshi 库和 Glide...九、测试代码和调试 十、虚拟现实游戏中的应用范围 十一、使用 C++ 和 OpenGL 开发游戏 十二、打磨游戏 十三、第三方集成、货币化和服务 BeagleBone Black 硬件接口...2.0 的更多东西 增强现实应用开发 零、前言 一、增强现实概念和工具 二、观察世界 三、叠加世界 四、定位世界 五、与好莱坞相同——实物上的虚拟 六、让具有互动性——创造用户体验 七、深入阅读和提示

    7.2K20

    第135天:移动端开发经验总结

    通常我们再滑屏页面, 会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动 touchend:当手指离开屏幕触发 touchcancel:系统停止跟踪触摸时候会触发。...百度可能会对你的网页进行转码,往你页面贴上的广告,非常之恶心。...不过我们可以通过这个meta标签来禁止: 3、移动端手机号码识别(IOS)    iOS...tel:123456">123456   开启短信功能:  123456 4、 移动端邮箱识别(Android)   与电话号码的识别一样,上会对符合邮箱格式的字符串进行识别...文本的大小会重新计算(或者在内嵌浏览器中设置字体的大小),进行相应的缩放,当我们不需要这种情况,可以选择禁止: html {   -webkit-text-size-adjust: 100%; }

    1.6K30

    从零开始为你的手机安装Win11系统

    1.本教学使用一加6(8G+128G)手机Hydrogen OS 10.0.10基础上进行操作,如系统版本低于10请务必先跳至本文的第三部分的(3)4。...(一加7也可以参考),你随便刷,救不回当我输,就这么霸气求三连 ①如果手机没有完全关闭,先按住音量上键,再按住电源键,持续数秒直至手机完全黑屏,静置数秒以确认手机已完全关机 ②双击运行MsmDownloadTool...(可选) 使用本文提供的9008线刷包,按照上述步骤操作后,会将手机恢复到8.1.0版本 在手机设置中找到系统更新,联网状态下即可将手机升级到氢OS9.0.8版本,然后9.0.8的版本中又可以升级到氢...OS10.0.10版本。...9.0.8版本 ③将手机从氢OS9.0.8升级到氢OS10.0.10版本与上述步骤大同小异,只需要将Rom包版本换为10.0.10即可,在此不再赘述。

    5.3K30

    Android--利用DrawerLayout打造自定义侧滑效果

    自定义侧滑效果.gif 上次说到自定义属性系统控件上的应用,今天继续利用这个思想,基于DrawerLayout打造自己的侧滑效果 首先看下我们的布局文件 <?...和LinearLayout,其他和DrawerLayout使用完全一样,其中自定义DrawerLayout添加View的时候,对我们的这个LinearLayout进行了一层包裹 /** * 自定义DrawerLayout...,里面的自定义LinearLayout自动包裹一层 */ public class MyDrawerLayout extends DrawerLayout implements DrawerLayout.DrawerListener...slideRelativeLayout.setOpen(false); } } //没有打开之前 不拦截 我们onDrawerSlide...Override public void onDrawerClosed(@NonNull View view) { fraction = 0; //点击item后关闭侧滑或者手指快速侧滑的重置状态

    78630

    ApacheCN 译文集(二)20211226 更新

    数据库编程 零、前言 一、系统上存储数据 二、使用 SQLite 数据库 三、SQLite 查询 四、使用内容供应器 五、查询联系人表 六、绑定到用户界面 七、数据库的实践 八、探索外部数据库...三、iOS 和之间的代码共享 四、Xamsap——跨平台应用 五、iOS 的 XamSnap 六、的 XamSnap 七、设备上部署和测试 八、联系人、相机和位置 九、带有推送通知的网络服务...直连 应用开发秘籍 零、前言 一、活动 二、布局 三、视图、小部件和样式 四、菜单 五、探索片段、应用小部件和系统用户界面 六、使用数据 七、警报和通知 八、使用触摸屏和传感器 九、图形和动画...Flash 开发秘籍 零、前言 一、准备好使用系统:开发环境和项目设置 二、交互体验:多点触摸、手势和其他输入 三、穿越空间的运动:加速度计和地理位置传感器 四、视觉和音频输入:摄像头和麦克风接入...四、NinePatch 图像 五、触摸事件和在画布上绘图 六、把它们放在一起 语音应用开发 零、前言 一、设备上的语音 二、文本到语音合成 三、语音识别 四、简单的语音交互 五、表单填充对话

    2.7K20
    领券