【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
}
相关推荐
用户693717500138412 小时前
17.Kotlin 类:类的形态(四):枚举类 (Enum Class)
android·后端·kotlin
h***346312 小时前
MS SQL Server 实战 排查多列之间的值是否重复
android·前端·后端
用户693717500138412 小时前
16.Kotlin 类:类的形态(三):密封类 (Sealed Class)
android·后端·kotlin
摆烂积极分子14 小时前
安卓开发学习-安卓版本
android·学习
n***265615 小时前
MySQL JSON数据类型全解析(JSON datatype and functions)
android·mysql·json
t***821115 小时前
mysql的主从配置
android·mysql·adb
YF021118 小时前
Frida如何稳定连接PC端跟Android手机端
android·mac·xposed
O***P57119 小时前
【MySQL】MySQL内置函数--日期函数字符串函数数学函数其他相关函数
android·mysql·adb
z***438419 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
无心水19 小时前
【Python实战进阶】7、Python条件与循环实战详解:从基础语法到高级技巧
android·java·python·python列表推导式·python条件语句·python循环语句·python实战案例