【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
}
相关推荐
2501_915106328 小时前
如何查看手机使用记录:Android和iOS设备全面指南
android·ios·智能手机·小程序·uni-app·iphone·webview
nee~9 小时前
Android设备USB连接转无线操作(windows)
android·windows
sun00770010 小时前
android上ethernet和wifi共存
android
青莲84311 小时前
Android Jetpack - 3 LiveData
android·前端
小蜜蜂嗡嗡11 小时前
flutter namespace问题
android·flutter
Cat God 00711 小时前
MySQL-查漏补缺版(六:MySQL-优化)
android·数据库·mysql
QING61812 小时前
Jetpack Compose Brush API 简单使用实战 —— 新手指南
android·kotlin·android jetpack
Swizard12 小时前
别让 AI 假装在工作:Android "Vibe Coding" 的生存指南
android·java·vibe coding
电饭叔13 小时前
《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之一(Luhn算法解释)
android·java·python
QING61813 小时前
Jetpack Compose Brush API 详解 —— 新手指南
android·kotlin·android jetpack