【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
}
相关推荐
robotx14 小时前
安卓16屏保中的启用时机,选项不正确
android
JulyYu14 小时前
【Android】第三方库依赖引发的异常情况排查
android·android studio
QING61816 小时前
简单说下Kotlin 作用域函数中 apply 和 also 为什么不能空安全调用?
android·kotlin·android jetpack
城东米粉儿16 小时前
着色器 (Shader) 的基本概念和 GLSL 语法 笔记
android
儿歌八万首19 小时前
Jetpack Compose :封装 MVVM 框架
android·kotlin·compose
2501_9159214319 小时前
iOS App 中 SSL Pinning 场景下代理抓包失效的原因
android·网络协议·ios·小程序·uni-app·iphone·ssl
壮哥_icon19 小时前
Android 系统级 USB 存储检测的工程化实现(抗 ROM、抗广播丢失)
android·android-studio·android系统
Junerver19 小时前
积极拥抱AI,ComposeHooks让你更方便地使用AI
android·前端
城东米粉儿19 小时前
ColorMatrix色彩变换 笔记
android