【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
}
相关推荐
锅拌饭2 小时前
IM 推拉的道与术(四)
android
火柴就是我2 小时前
学习一些常用的混合模式之BlendMode. SRC_OVER
android·flutter
青莲8432 小时前
Java并发编程高级(线程池·Executor框架·并发集合)
android·前端·面试
Android-Flutter2 小时前
android compose LazyColumn 垂直列表滚动 使用
android·kotlin
用户74589002079542 小时前
Handler机制
android
福大大架构师每日一题3 小时前
milvus v2.6.8 发布:搜索高亮上线,性能与稳定性全面跃升,生产环境强烈推荐升级
android·java·milvus
草莓熊Lotso4 小时前
脉脉独家【AI创作者xAMA】| 开启智能创作新时代
android·java·开发语言·c++·人工智能·脉脉
李坤林4 小时前
Android Binder详解【5】 ServiceManager
android·binder
Ya-Jun4 小时前
Android 扫雷游戏项目设计报告
android·游戏