【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
}
相关推荐
alexhilton28 分钟前
在Jetpack Compose中创建CRT屏幕效果
android·kotlin·android jetpack
2501_940094022 小时前
emu系列模拟器最新汉化版 安卓版 怀旧游戏模拟器全集附可运行游戏ROM
android·游戏·安卓·模拟器
下位子3 小时前
『OpenGL学习滤镜相机』- Day9: CameraX 基础集成
android·opengl
参宿四南河三4 小时前
Android Compose SideEffect(副作用)实例加倍详解
android·app
火柴就是我5 小时前
mmkv的 mmap 的理解
android
没有了遇见5 小时前
Android之直播宽高比和相机宽高比不支持后动态获取所支持的宽高比
android
shenshizhong6 小时前
揭开 kotlin 中协程的神秘面纱
android·kotlin
vivo高启强6 小时前
如何简单 hack agp 执行过程中的某个类
android
沐怡旸6 小时前
【底层机制】 Android ION内存分配器深度解析
android·面试
你听得到117 小时前
肝了半个月,我用 Flutter 写了个功能强大的图片编辑器,告别image_cropper
android·前端·flutter