【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
}
相关推荐
我是好小孩12 小时前
【Android】布局优化:include、merge、ViewStub以及Inflate()源码浅析
android
GISer_Jing12 小时前
2025年Flutter与React Native对比
android·flutter·react native
MasterLi802313 小时前
我的读书清单
android·linux·学习
怪兽201413 小时前
fastjson在kotlin不使用kotlin-reflect库怎么使用?
android·开发语言·kotlin
彭同学学习日志13 小时前
Kotlin Fragment 按钮跳转报错解决:Unresolved reference ‘floatingActionButton‘
android·开发语言·kotlin
Gracker14 小时前
Android Perfetto 系列 9 - CPU 信息解读
android
Gracker14 小时前
Android Perfetto 系列 8:深入理解 Vsync 机制与性能分析
android
Gracker15 小时前
Android Perfetto 系列 07 - MainThread 和 RenderThread 解读
android
Gracker15 小时前
Android Perfetto 系列 5:Android App 基于 Choreographer 的渲染流程
android
Gracker15 小时前
Android Perfetto 系列 6:为什么是 120Hz?高刷新率的优势与挑战
android