【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
}
相关推荐
xq95273 小时前
带你玩转kakao登录 接入教程
android
2501_946233893 小时前
Flutter与OpenHarmony应用设置页面完整开发
android·flutter
青莲8434 小时前
Java基础篇——第一部
android·前端
城东米粉儿5 小时前
Android 插件 笔记
android
Jet_585 小时前
一次完整的 Unity Mono 安卓游戏逆向:Frida Hook 绕过碰撞死亡判定
android·游戏·unity
iReachers5 小时前
为什么HTML打包安卓APP安装时会覆盖或者报错?
android·java·html·html打包apk·网页打包
纟 冬5 小时前
Flutter & OpenHarmony 运动App运动模式选择组件开发
android·java·flutter
冷雨夜中漫步5 小时前
OpenAPITools使用——FAQ
android·java·缓存
ljt27249606617 小时前
Compose笔记(六十五)--插槽模式
android·笔记·android jetpack
6666v67 小时前
Android Kotlin(3) Flow异步流
android·kotlin