【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
}
相关推荐
plainGeekDev13 小时前
ProGuard → R8
android·java·kotlin
雨白14 小时前
C 语言字符串:从字符数组、指针到核心操作实战
android
Java小白笔记14 小时前
MySQL中存储过程大表分批删除历史数据
android·mysql·adb
aidou131415 小时前
Kotlin中沉浸式状态栏显示布局
android·kotlin·windowmanager·沉浸式状态栏·insetslistener·insetscompat·systembars
我命由我1234515 小时前
Android 构建项目问题:XML 片段出错,com.ctc.wstx.exc.WstxUnexpectedCharException
android·xml·android studio·android jetpack·android-studio·android runtime
阿pin16 小时前
Android随笔-pipe是什么?
android·linux·pipe
帅次16 小时前
Android 高级工程师面试:Flow 与状态流 近1年高频追问 22 题
android·面试·职场和发展
雨季余静16 小时前
RustDesk Android APK 从零编译全步骤
android
辰合软件16 小时前
通达OA配置文件详解
android·adb
辰合软件16 小时前
通达OA目录结构与核心文件解析
android·数据库·oracle