【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
}
相关推荐
csj5016 小时前
安卓基础之《(20)—高级控件(2)列表类视图》
android
JMchen12316 小时前
Android计算摄影实战:多帧合成、HDR+与夜景算法深度剖析
android·经验分享·数码相机·算法·移动开发·android-studio
恋猫de小郭18 小时前
Flutter 在 Android 出现随机字体裁剪?其实是图层合并时的边界计算问题
android·flutter·ios
2501_9159184118 小时前
把 iOS 性能监控融入日常开发与测试流程的做法
android·ios·小程序·https·uni-app·iphone·webview
benjiangliu19 小时前
LINUX系统-09-程序地址空间
android·java·linux
独自破碎E20 小时前
字符串相乘
android·java·jvm
DokiDoki之父20 小时前
边写软件边学kotlin(一):Kotlin语法初认识:
android·开发语言·kotlin
REDcker20 小时前
Telegram Android 源码解析完整文档
android
Big Cole20 小时前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php
雪球Snowball21 小时前
【Android关键流程】WMS的创建
android