【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
}
相关推荐
成都大菠萝1 小时前
Android层级分布
android
用户69371750013841 小时前
8.Kotlin 类:类的基础:主构造函数与次构造函数
android·后端·kotlin
用户69371750013841 小时前
9.Kotlin 类:类的核心:属性 (Property) 与自定义访问器 (Getter/Setter)
android·后端·kotlin
kerli1 小时前
Android:使用 Tint 为图标 Icon 动态着色
android
hqk2 小时前
鸿蒙零基础语法入门:开启你的开发之旅
android·前端·harmonyos
QuantumLeap丶2 小时前
《Flutter全栈开发实战指南:从零到高级》- 17 -核心动画
android·flutter·ios
2501_915921432 小时前
抓包技术全面指南:原理、工具与应用场景
android·ios·小程序·https·uni-app·iphone·webview
TT哇3 小时前
【计算机网络】经典易错题 1.概述 2 物理层 3.数据链路层 4.网络层
android·服务器·计算机网络
在下历飞雨5 小时前
Kuikly基础之音频播放与资源管理:青蛙叫声实现
android·ios·harmonyos
勇气要爆发6 小时前
第三阶段:ExoPlayer进阶播放器
android·音视频·exoplayer