【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
}
相关推荐
爱笑鱼4 小时前
Android 系统启动机制(八):系统服务怎样从创建走到可用?SystemServiceManager 和 Boot Phase 各管什么?
android
hai_android4 小时前
Android 组件化开发实践
android·java·kotlin
mmsx5 小时前
Android 几何构造器的双栈机:链式 API 底层是怎么装配几何的
android
mmsx5 小时前
Android 地图卡成 PPT 之后:双渲染管线与空间网格渐进加载怎么救
android·app
光影少年5 小时前
setImmediate 和 setTimeout(0) 的区别
android·前端·react.js·ios·前端框架
Android-Flutter20 小时前
android compose 知识点
android·compose
其实防守也摸鱼21 小时前
Codex 下载与本地部署实战:从安装到运行全指南
android·大数据·运维·安全·自动化
ttyyttemo21 小时前
协程并发执行与共享状态
android
miaowmiaow21 小时前
我让 AI 给老项目做了一次分层架构升级:对标 Now in Android,从「穿层」到「端口与适配器」
android·ai编程·deepseek
mmsx1 天前
Android 栅格数据缓冲区的类型包装:用匿名子类破解泛型擦除
android·地图·栅格