【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
}
相关推荐
simplepeng9 小时前
我们都知道但总是忽略的5个Jetpack Compose细节
android·android jetpack
刮风那天10 小时前
Android 如何提高进程优先级避免被查杀?
android
修行者对66611 小时前
安卓阿里云镜像
android
刮风那天12 小时前
Android AMS创建进程不用Binder而用Socket?
android·java·binder
知行合一。。。14 小时前
Python--05--面向对象(继承,多态)
android·开发语言·python
张小潇15 小时前
AOSP15 WMS/AMS系统开发 -窗口动画源码分析
android
程序员陆业聪16 小时前
Shadow核心原理:壳子Activity与代理机制的精妙设计
android
plainGeekDev17 小时前
Android 开发者再不转Kotlin,真的来不及了
android·kotlin
赏金术士17 小时前
第五章:数据层—网络请求与Repository
android·kotlin·compose
初雪云17 小时前
让安卓发版再简单一点,体验一键自动化发布
android·运维·自动化