【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
}
相关推荐
Mr Lee_1 小时前
attribute android:enableOnBackInvokedCallback not found
android
Jomurphys1 小时前
Compose - 使用 Reorderable
android
帅得不敢出门1 小时前
Android Framework在mk中新增类似PRODUCT_MODEL的变量并传递给buildinfo.sh及prop属性中
android·linux·前端
似霰2 小时前
AIDL Hal 开发笔记7----AIDL HAL 的升级
android·framework·hal
黄大包2 小时前
android MQTT封装
android·mqtt·mt
2501_916007475 小时前
跨平台 App 安全,Flutter、RN、Unity、H5 混合应用加固
android·ios·小程序·https·uni-app·iphone·webview
hinewcc7 小时前
Linux电源管理 - wakelocks
android·linux
你怎么知道我是队长7 小时前
win11系统查看设备配置
android·java·javascript
DevangLic7 小时前
【确认是否安装了 C++ 工具】
android·java·c++
2501_916007477 小时前
不越狱如何查看iOS 应用的详细信息及其文件目录结构
android·macos·ios·小程序·uni-app·cocoa·iphone