【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
}
相关推荐
消失的旧时光-19432 小时前
Android ADB指令大全详解
android·adb
ashcn20014 小时前
opengl 播放视频的android c++ 方案
android·c++ opengl es
abner.Li5 小时前
android 反编译
android
Digitally5 小时前
如何删除 realme 手机上的短信
android
2501_916008895 小时前
提高 iOS 应用逆向难度的工程实践,多工具联动的全栈安全方案
android·安全·ios·小程序·uni-app·cocoa·iphone
沐怡旸5 小时前
【底层机制】Android图形渲染体系深度解析:VSync信号机制
android·面试
BoomHe6 小时前
Android 13 (API 33)上自定义广播
android
来来走走7 小时前
Android开发(Kotlin) ViewModel基本用法
android·开发语言·kotlin
Digitally7 小时前
在荣耀手机上删除短信的完整指南
android
nono牛7 小时前
Android Binder C/C++ 层详解与实践
android·c语言·binder