【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
}
相关推荐
yuanManGan37 分钟前
走进Linux的世界:初识操作系统(Operator System)
android·linux·运维
叶羽西1 小时前
Android15跟踪函数调用关系
android
消失的旧时光-19432 小时前
webView 的canGoBack/goBack 回退栈
android·webview
SHEN_ZIYUAN2 小时前
Flow 责任链模式图解
android
沐怡旸4 小时前
【底层机制】LeakCanary深度解析:从对象监控到内存泄漏分析的完整技术体系
android·面试
又菜又爱coding5 小时前
Android + Flutter打包出来的APK体积太大
android·flutter
LiuYaoheng5 小时前
【Android】Drawable 基础
android·java
Jerry6 小时前
构建 Compose 界面
android
Y多了个想法7 小时前
Linux驱动开发与Android驱动开发
android·linux·驱动开发
2501_916007479 小时前
从零开始学习iOS App开发:Xcode、Swift和发布到App Store完整教程
android·学习·ios·小程序·uni-app·iphone·xcode