【Android】Fragment中监听Backpress返回键

需求

在Fragment中监听返回键,并结束Activity

问题

Fragment未提供监听返回键的方法

思路

可以给Fragment中的RootView添加KeyListener

但是RootView默认是无法获取按键焦点的,所以即使添加了KeyListener也无效

我们只要允许Fragment的RootView获得焦点,并获得焦点,再添加KeyListener即可

代码
kotlin 复制代码
binding.root.isFocusableInTouchMode = true
binding.root.requestFocus()
binding.root.setOnKeyListener { v, keyCode, event ->
	if (keyCode == KeyEvent.KEYCODE_BACK) {
			requireActivity().finish()
			return@setOnKeyListener true
	}
	return@setOnKeyListener false
}
相关推荐
孟秋与你10 分钟前
【安卓】开发一个读取文件信息的简易apk
android
42nf12 分钟前
Android Launcher3添加负一屏
android·launcher3·android负一屏
LcVong26 分钟前
老版本Android源码在新版本IDE打开的常规报错及解决方案
android·ide
别退37 分钟前
flutter_gradle_android
android·flutter
2501_944424121 小时前
Flutter for OpenHarmony游戏集合App实战之黑白棋落子翻转
android·开发语言·windows·flutter·游戏·harmonyos
zhangphil1 小时前
Android adb shell抓取trace(二)
android
2501_944424121 小时前
Flutter for OpenHarmony游戏集合App实战之消消乐下落填充
android·开发语言·flutter·游戏·harmonyos
min1811234561 小时前
软件升级全流程步骤详解
android·java·服务器
JeffDingAI2 小时前
【Datawhale学习笔记】参数高效微调
android·笔记·学习
江西省遂川县常驻深圳大使2 小时前
【免费】Android App加固,Android应用加固,安卓加固,Apk加固
android