【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
}
相关推荐
那就摆吧30 分钟前
数据结构-栈
android·java·c语言·数据结构
奔跑吧 android37 分钟前
【android bluetooth 框架分析 02】【Module详解 4】【Btaa 模块介绍】
android·bluetooth·bt·aosp13·btaa
tangweiguo0305198740 分钟前
Android Compose Activity 页面跳转动画详解
android·compose
Yang-Never1 小时前
ADB -> pull指令拉取手机文件到电脑上
android·adb·android studio
Yang-Never1 小时前
ADB -> pull指令推送电脑文件到手机上
android·adb·android studio
李新_1 小时前
我们封装了哪些好用的Flutter Mixin
android·flutter
帅次2 小时前
Flutter Expanded 与 Flexible 详解
android·flutter·ios·小程序·webview
流浪汉kylin2 小时前
Android手机如何腾出存储空间
android
0wioiw02 小时前
Kotlin基础(①)
android·开发语言·kotlin
西瓜本瓜@2 小时前
在 Android 中实现通话录音
android·java·开发语言·学习·github·android-studio