【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
}
相关推荐
用户416596736935543 分钟前
nextlib 项目架构与深度技术指南 (Architecture & Technical Master Guide)
android
aq55356001 小时前
Laravel10.x重磅升级,新特性一览
android·java·开发语言
Trouvaille ~2 小时前
【MySQL篇】数据类型:存储数据的基础
android·数据库·mysql·adb·字符集·数据类型·基础入门
2401_885885043 小时前
开发视频短信接口好开发吗?图文视频短信接口对接教程
android·音视频
千码君20164 小时前
kotlin:Jetpack Compose 给APP添加声音(点击音效/背景音乐)
android·开发语言·kotlin·音效·jetpack compose
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.4 小时前
MySQL半同步复制与GTID实战详解
android·mysql·adb
用户41659673693555 小时前
深度解码:记一次视频时间戳(PTS)异常导致的播放故障排查
android
大白菜和MySQL7 小时前
linux系统环境常用命令
android·linux·adb
Ehtan_Zheng7 小时前
彻底告别 AndroidX 依赖:如何在 KMP 中构建 100% 复用的 UI 逻辑层?
android
Hello小赵7 小时前
C语言如何自定义链接库——编译与调用
android·java·c语言