【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
}
相关推荐
测试工坊1 天前
Android 视频播放卡顿检测——帧率之外的第二战场
android
Kapaseker1 天前
一杯美式深入理解 data class
android·kotlin
鹏多多1 天前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter
Carson带你学Android1 天前
OpenClaw移动端要来了?Android官宣AI原生支持App Functions
android
黄林晴1 天前
Android 删了 XML 预览,现在你必须学 Compose 了
android
三少爷的鞋1 天前
Android 面试系列 | 内存泄露:从"手动配对"到"架构自愈"
android
恋猫de小郭1 天前
什么 AI 写 Android 最好用?官方做了一个基准测试排名
android·前端·flutter
louisgeek1 天前
Android MediatorLiveData
android
锋风2 天前
远程服务器运行Android Studio开发aosp源码
android
测试工坊2 天前
Android UI 卡顿量化——用数据回答"到底有多卡"
android