【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
}
相关推荐
码云骑士30 分钟前
Android ART运作流程
android
万能小林子40 分钟前
如何将网页在线转APP?5种打包工具对比速成指南(含在线/手机/电脑方案)
android·ios·uni-app·web app·wap2app·app打包·app封装
梅塔鲁1 小时前
Kotlin成安卓开发首选
android
zhangphil1 小时前
Android Coil 3 extend ImageRequest‘s custom method/function,Kotlin(2)
android·kotlin
诸神黄昏EX1 小时前
Android 性能优化【篇五:应用启动分析流程】
android
执念、坚持1 小时前
解决 vscode 中导入 android aosp 源码卡顿问题
android·ide·vscode
码云骑士1 小时前
Android ADB常用命令
android·adb
Kapaseker1 小时前
五分钟搞定 Compose 用户名密码自动填充
android·kotlin
EasyCVR1 小时前
监控“孤岛”困局:国标GB28181视频监控平台EasyCVR一站式视频融合平台实现视频系统统一管理
android·音视频
眸生2 小时前
基于NeteaseCloudMusicApi的音乐app 支持 DeepSeek 自然语言找歌、批量导入歌单、下载音乐转换成MP3,下载歌词
android·python·kotlin·android studio·音频·fastapi·android jetpack