【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
}
相关推荐
冬奇Lab5 小时前
【Kotlin系列04】类与对象基础:从Java Bean到Data Class的优雅蜕变
android·kotlin·编程语言
笔夏5 小时前
【安卓学习之webRTC】学习相关资料
android·学习·webrtc
_李小白6 小时前
【Android 美颜相机】第三天:初识GPUImageView
android·数码相机
行稳方能走远6 小时前
Android java 学习笔记3
android·java
Larry_Yanan6 小时前
Qt安卓开发(二)摄像头打开
android·开发语言·数据库·c++·qt·ui
Sammyyyyy6 小时前
PHP 8.6 新特性预览,更简洁的语法与更严谨的类型控制
android·php·android studio
撩得Android一次心动6 小时前
Android Lifecycle 全面解析:掌握生命周期管理的艺术(1)
android·java·kotlin·lifecycle
毕设源码-朱学姐6 小时前
【开题答辩全过程】以 基于安卓的家校交流平台为例,包含答辩的问题和答案
android