Android:Drawerlayout中back键直接退出的问题

Android自定义ActionBar实战:兼容性、主题链与菜单控制 ActionBar是Android原生导航栏的核心抽象,虽被Toolbar和TopAppBar演进替代,但仍是AppCompatActivity生命周期中不可绕过的协调中枢。其本质是理解主题继承链、Menu资源解析、Activity回调时机与UI状态同步的关键入口。掌握ActionBar自定义,意味着深入理解styles.xml主题层级、onPrepareOptionsMenu动态刷新机制、setCustomView的触摸事件博弈,以及从Android 5.0到14的跨版本兼容策略。这些能力直接迁移到现代架 阅读详情

Android:Drawerlayout中back键直接退出的问题


Drawerlayout是官方推荐的用于生成侧滑样式的布局控件,但是在打开侧滑菜单后点击手机的back(后退)键后,并不是把侧滑菜单隐藏而是退出当前的Activity
返回到上一个Activity。我们希望点击back后并不是退出当前Activity而是隐藏侧滑菜单。

我们只需要重写onBackPressed方法,在其中实现我们想要的即可。
onBackPressed方法:

Called when the activity has detected the user's press of the back key. The default implementation simply finishes the current activity, but you can override this to do whatever you want.


@Override
	public void onBackPressed() {
		mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
		if (mDrawerLayout.isDrawerOpen(findViewById(R.id.left_drawer)))
			mDrawerLayout.closeDrawers();
		else
			super.onBackPressed();
	}

即检测到侧滑菜单打开的情况则关闭菜单,否则调用父类的onBackPressed方法。
Android Fragment深度解析:从生命周期到事务管理的实战指南 在Android应用开发中,UI组件的生命周期管理和模块化设计是构建灵活、可复用界面的核心基础。Fragment作为Android架构的关键组件,其设计哲学在于提供一个具有独立生命周期的UI模块化容器,实现了视图与逻辑的高内聚、低耦合。这一机制的技术价值在于,它允许开发者像搭积木一样组合界面,显著提升了代码的复用性和可维护性,尤其适用于实现底部导航、ViewPager2分页以及适配平板、折叠屏等复杂多窗格布局。理解Fragment的生命周期与宿主Activity的协同、掌握FragmentManager与F 阅读详情

相关推荐

DrawerLayout侧滑菜单按钮与返回按钮切换

actionbar实现Drawerlayout侧滑菜单在打开或关闭时侧滑按钮与返回按钮的切换

Vue app项目发现按手机的返回键应用直接退出了

//最近vue做个项目,发现按手机的返回键应用直接退出了,而不是返回上一页,为此特 //意解决了这一问题,具体代码如下: document.addEventListener('plusready', function() { var webview = plus.webview.currentWebview(); plus.key.addEventListener('backbutton', function() { webview.canBack(function(e) { .

qq_41429765的博客 2579

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

Android笔记-DrawerLayout侧滑布局打开时的返回键问题

如果不修改back键的代码按下返回键不会关闭侧滑菜单,直接会退出当前活动,这里我们判断让用户按下返回键时看侧滑菜单是否打开如果打开则将其关闭。 重写onKeyDown方法 public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if...

GYongJia的博客 1646

飞控芯片的隐形战场:传感器冗余与实时OS的可靠性革命

本文深入探讨飞控芯片在工业级无人机中的可靠性设计,聚焦传感器冗余架构与实时操作系统(RTOS)的容错机制。通过多IMU备份、自适应加权融合算法及NuttX、ChibiOS等RTOS的故障隔离技术,确保系统在极端环境下毫秒级自愈。文章还涵盖开源生态如PX4的跨平台移植及RISC-V架构的应用,为高可靠性飞控系统提供关键技术参考。

z5a6b的博客 877

手机移动端-纯js浏览器h5调用摄像头扫描识别解析 条形码+二维码

一、场景 h5原生js 浏览器端解决识别二维码条形码功能; 不借助Hbuilder.需要自己打包成APP,比如用Hbuilder打包,浏览器端项目h5无打包成app部署X不采用 不借助微信扫一扫,调用微信js-jdk有多麻烦,还要认证服务号,也不适用其它浏览器打开X不采用 二、思路 1.思路一:input(相机拍照)+条形码或二维码识别js支持库 通过h5-input[camera]调用相机进行拍照成图片,通过条形码等识别库解析出数据; <input @cha...

徐子厚的博客 3万+

Android开发技巧

写一些开发中的小技巧 实现DrawerLayout上汉堡按钮的动画效果 效果图 当侧滑DrawerLayout的时候,左上角的汉堡按钮会有动画发生。 代码实现如下: ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, mDrawerLayout, mToolbar, R.string.op...

weixin_34148340的博客 134

域控制器开发避坑实录:从硬件设计到软件集成的5个关键挑战

本文深入剖析了域控制器开发中的5大关键挑战,从硬件选型到软件集成,涵盖智能驾驶芯片选择、实时性优化、AUTOSAR架构适配等核心问题。通过实战案例和数据对比,为工程师提供避坑指南,助力提升开发效率和系统可靠性。

weixin_29258297的博客 395

Android 当按Back键Home键使App退出时遇到的问题

前言 第一个问题:app按两次Back键到桌面,再返回app数据没有置空 项目中有一个全局单例保存的数据 我发现每次当我按下Back键返回,再进入之后App的数据都会递增 无论我在它的生命周期各个方法里执行清空都没有用?于是翻阅资料 查找后 得到这样一个答案! 仔细阅读下面这句话 可以理解其中的意思 另外在activity中按下back键,实际是调用了finish方法,应用退出。虽然应用...

吕氏春秋i 1765

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 307

YOLO11涨点优化:Loss魔改 | WIoU (Wise-IoU) v3版本全面替换,基于动态非单调聚焦机制,让模型更聪明地学习

YOLOv11目标检测中的WIoU v3损失函数改进 本文探讨了YOLOv11目标检测模型中CIoU损失函数的局限性,并提出了WIoU v3改进方案。关键发现包括: CIoU的缺陷:在低质量样本(小目标/遮挡目标)上过度惩罚,导致模型优化方向偏离,小目标AP往往比大目标低30%左右。 WIoU v3的创新: 动态非单调聚焦机制:根据样本"离群度"智能分配梯度 让模型重点优化中等质量样本,减少对低质量样本的无效关注 采用指数移动平均来自适应调整质量评判标准 实际效果:WIoU v3在保持大

2601_95807009的博客 422

android 退出APP时 两次按返回键才退出,“再按一次退出”简述

想必大家经常会遇到这种情况:当你想要退出APP时,按一次返回键,它会弹出”再按一次返回”。这个对于做APP的人来说,加上这样一个小功能,你的APP会显得高大上一点啦,下面小编教你如何简单实现这一功能 ps:此方法使用的android原生开发,Java 1.首先这样一个功能一定要在打开APP的第一个activity里实现,因为当你想退出一个APP时候,你一定会一直按返回键,直到返回到最后一个ac...

quhongjuan12的博客 4506

航天设备研制中的形态分类:电性件、正样件及其他关键形态详解

航天设备的研制是一个高度复杂且严谨的工程过程,涉及多个阶段的不同产品形态。这些形态各具特点,在研制流程中承担着不同的验证任务和工程目标。本文将系统介绍航天设备研制中的主要形态,包括**电性件(EM)**、**正样件(FM)**以及**结构热控件(STM)**、**鉴定件(QM)**和**初样件(PFM)**等,详细解析它们的定义、用途和工程意义,帮助读者全面理解航天产品从设计到飞行的全生命周期管理。

ScilogyHunter的博客 1656

DrawerLayout遇到虚拟back键

我在点击手机虚拟键back的时候,不管侧滑打开或者关闭, 直接退了应用 但是我们的要求是 侧滑在打开状态下点击虚拟键back需要关闭侧滑 侧滑关闭的时候在退出应用 我们需要重写onKeyDown方法,通过isDrawerOpen方法判断侧滑现在处于什么状态 这样就搞定了虚拟按键退出应用的问题。 我在网上看到有人重写以下方法(但是对我来说问题没有解决) onBackPressed()方法适用...

weixin_44043199的博客 200

华为OD机考双机位C卷 - 朋友圈个数(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 朋友圈个数(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 695

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android双击back按钮退出实现

重写OnBackPressed()方法,activity布局为DrawerLayout @Override public void onBackPressed() { DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); if (drawer.isDrawerOpen(

wjk7186912的专栏 401

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

DrawerLayout

侧拉菜单作为常见的导航交互控件,最开始在没有没有android官方控件时,很多时候都是使用开源的SlidingMenu, 它是一个容器: 官方介绍 DrawerLayout acts as a top-level containerfor window content that allows for interactive “drawer” views to be pulled out f

丑丑鱼的博客 822

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

App二次退出

 /**     * 捕捉back     */    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK &amp;&amp; event.getRepeatCount() == 0) {            if (dr...

ydc0128的博客 168

Android 全屏抽屉fragment,NavigationView

1、首先是右→左进入动画 、slide_left.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="800" ...

meixi_android的博客 1559

安卓用Fragment+RadioButton组合构成的底部导航栏的实现

由于Fragment是3.0后才有的,所以使用时一般还是导入V4的包;直接上demo,代码中做说明:import java.util.ArrayList; import java.util.List; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import an

cz9025的博客 2144

Android侧边导航栏+ListView基础实践

Android基础项目实践 本学期学习了Android的开发课程,期末也做了一款很萌新向的App作为课程的内容输出吧。 这篇博客就拿来记录一下开发过程和相关内容吧 0x01 前言 言归正传,首先说一说做这么一款App的想法。 一个是出于完成课程报告的角度(有一些要求),另一个就是学了很多确实想做点什么。至于为什么做这个,起初也考虑过仿一些常用的App的想法,但是心里总是不太愿意,想做些没有的。(...

Y1ah的Blog 2153

DrawerLayout使用详解

DrawerLayout 抽屉布局 文章目录效果:布局关联Toolbar手动打开关闭监听github:https://github.com/yechaoa/MaterialDesign 效果: 布局 <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:...

yechaoa 4万+

抽屉DrawerLayout onBackPressed事件

@Override public void onBackPressed() { if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {//判断 mDrawerLayout.closeDrawers(); } else { if (System.currentTimeMillis() - exitt

Calo_missile的博客 556

android drawerlayout侧滑菜单,Android中drawerlayout侧滑菜单效果的实现

众所周知,Android中drawerlayout侧滑菜单是一个很常见的功能,而我们大多数人都是使用slidengmenu作为一个开源框架,下面爱站技术频道小编给大家介绍Android中drawerlayout侧滑菜单效果的实现,希望能帮到大家。话不多说,先来发图以表我滴诚意:开始写代码DrawerLayout 是v4包里面的,所以项目里面需要添加v4包,具体怎么添加就不多说了,Navigatio...

weixin_42356145的博客 482
上一篇: Android:unable to start Activity ...的几种原因
下一篇: 编译原理:第七节
cassiePython
博客等级 码龄12年 303粉丝 135原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值