【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
}
相关推荐
_李小白5 分钟前
【Android FrameWork】延伸阅读:AMS 的 handleApplicationCrash
android·开发语言·python
_李小白1 小时前
【Android FrameWork】第四十九天:SystemUI
android
Mr -老鬼1 小时前
移动端跨平台适配技术框架:从发展到展望
android·ios·小程序·uni-app
城东米粉儿1 小时前
compose measurePoliy 笔记
android
城东米粉儿1 小时前
Compose 延迟列表
android
GoldenPlayer1 小时前
SOLID原则-Software Develop
android
GoldenPlayer1 小时前
Android文件管理系统
android
冬奇Lab1 小时前
【Kotlin系列02】变量与数据类型:从val/var到空安全的第一课
android·kotlin·编程语言
alonewolf_991 小时前
深入理解MySQL事务与锁机制:从原理到实践
android·数据库·mysql