【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
}
相关推荐
恋猫de小郭8 小时前
丰田正在使用 Flutter 开发游戏引擎 Fluorite
android·前端·flutter
似霰11 小时前
Unix Domain Socket —— UDP 篇
android·unix
独自破碎E12 小时前
BISHI54货物堆放
android·java·开发语言
冬奇Lab13 小时前
属性系统与系统配置管理:Android的全局配置中心
android·源码阅读
zjttsh13 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql
fengsen521131414 小时前
MySQL--》如何在MySQL中打造高效优化索引
android·mysql·adb
吴声子夜歌15 小时前
RxJava——Hot Observable和Cold Observable
android·rxjava
dreams_dream17 小时前
MySQL 主从复制(小白友好 + 企业级)
android·数据库·mysql
城东米粉儿17 小时前
Android PLT Hook 笔记
android
城东米粉儿17 小时前
leakcanary原理
android