【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
}
相关推荐
COSMOS_*6 小时前
2025最新版 Android Studio安装及组件配置(SDK、JDK、Gradle)
android·ide·jdk·gitee·android studio
jian110586 小时前
android studio Profiler性能优化,查看内存泄漏
android·性能优化·android studio
建群新人小猿8 小时前
陀螺匠企业助手——组织框架图
android·java·大数据·开发语言·容器
TheNextByte19 小时前
如何将文件从Android无线传输到 iPad
android·ios·ipad
赫萝的红苹果9 小时前
实验探究并验证MySQL innoDB中的各种锁机制及作用范围
android·数据库·mysql
叶落无痕5210 小时前
Android Studio 2024.3.1 连接夜神模拟器
android·ide·android studio
玲子的猫10 小时前
安卓原生开发实现图片双指放大预览功能
android
2501_9151063211 小时前
如何在iPad上高效管理本地文件的完整指南
android·ios·小程序·uni-app·iphone·webview·ipad
似霰11 小时前
AIDL Hal 开发笔记5----实现AIDL HAL
android·framework·hal
2501_9151063212 小时前
iOS 成品包加固,在只有 IPA 的情况下,能做那些操作
android·ios·小程序·https·uni-app·iphone·webview