【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
}
相关推荐
恋猫de小郭4 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
aqi004 小时前
FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
android·ffmpeg·音视频·流媒体
androidwork6 小时前
深入解析内存抖动:定位与修复实战(Kotlin版)
android·kotlin
梦天20156 小时前
android核心技术摘要
android
szhangbiao8 小时前
“开发板”类APP如果做屏幕适配
android
高林雨露9 小时前
RecyclerView中跳转到最后一条item并确保它在可视区域内显示
android
移动开发者1号11 小时前
ReLinker优化So库加载指南
android·kotlin
山野万里__11 小时前
C++与Java内存共享技术:跨平台与跨语言实现指南
android·java·c++·笔记
Huckings11 小时前
Android 性能问题
android
移动开发者1号12 小时前
剖析 Systrace:定位 UI 线程阻塞的终极指南
android·kotlin