【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
}
相关推荐
zgyhc20503 小时前
【Android Audio】dumpsys media.metrics分析
android
nono牛3 小时前
Android Binder 详解与实践指南
android·binder
小镇学者3 小时前
【PHP】PHP WebShell(网页木马)分析
android·开发语言·php
2501_916007474 小时前
iOS 压力测试的工程化体系,构建高强度、多维度、跨工具协同的真实负载测试流程
android·ios·小程序·uni-app·cocoa·压力测试·iphone
毕设源码-钟学长6 小时前
【开题答辩全过程】以 浮生馆汉服租赁管理系统为例,包含答辩的问题和答案
android·java·tomcat
louisgeek6 小时前
Android NDK 开发中的崩溃排查
android
2501_915921438 小时前
iOS 开发者工具推荐,构建从调试到性能优化的多维度生产力工具链(2025 深度工程向)
android·ios·性能优化·小程序·uni-app·iphone·webview
Chrison_mu9 小时前
Android项目背景动效-Kotlin
android·开发语言·kotlin
曾经的三心草10 小时前
JavaEE初阶-多线程2
android·java·java-ee
v***56511 小时前
Spring Cloud Gateway
android·前端·后端