【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
}
相关推荐
城东米粉儿38 分钟前
Android Glide 笔记
android
城东米粉儿1 小时前
Android TheRouter 笔记
android
城东米粉儿7 小时前
Android AIDL 笔记
android
城东米粉儿7 小时前
Android 进程间传递大数据 笔记
android
城东米粉儿8 小时前
Android KMP 笔记
android
冬奇Lab9 小时前
WMS核心机制:窗口管理与层级控制深度解析
android·源码阅读
松仔log9 小时前
JetPack——Paging
android·rxjava
城东米粉儿10 小时前
Android Kotlin DSL 笔记
android
城东米粉儿10 小时前
Android Gradle 笔记
android