【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
}
相关推荐
李艺为7 小时前
根据apk包名动态修改Android品牌与型号
android·开发语言
Tom4i9 小时前
【网络优化】Android 如何监听系统网络连接成功
android·网络
FrameNotWork9 小时前
HarmonyOS 与 Android 架构对比:从“写页面”到“设计系统”的差异
android·架构·harmonyos
TAEHENGV10 小时前
基本设置模块 Cordova 与 OpenHarmony 混合开发实战
android·java·数据库
屏息12 小时前
Android 低延迟流媒体播放器实战:基于 FFmpeg 6.1.1 的 RTSP/RTMP 解决方案
android
TeleostNaCl13 小时前
Kodi | 如何使用 ADB 无 root 备份 Android 版本 Kodi 的数据并导入到另一台设备中
android·经验分享·adb·电视盒子·智能电视·tv·智能tv
csj5013 小时前
安卓基础之《(10)—中级控件(4)对话框》
android
nono牛14 小时前
Android.bp 配置文件详解---gatekeeperd
android
来来走走14 小时前
Android开发(kotlin) 开发一个简单天气应用
android·kotlin
SweetCode15 小时前
汉诺塔问题
android·java·数据库