【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
}
相关推荐
村里小码农13 小时前
Android APP之间共享数据
android·contentprovider·contentresolver·android app数据共享
Jerry13 小时前
Navigation 最佳实践
android
Just_Paranoid13 小时前
【Android UI】Android 颜色的表示和获取使用指南
android·ui·theme·color·attr·colorstatelist
louisgeek14 小时前
Android Charles Proxy 抓包
android
Exploring15 小时前
从零搭建使用 Open-AutoGML 搜索附近的美食
android·人工智能
ask_baidu16 小时前
Doris笔记
android·笔记
lc99910216 小时前
简洁高效的相机预览
android·linux
hqk16 小时前
鸿蒙ArkUI:状态管理、应用结构、路由全解析
android·前端·harmonyos
消失的旧时光-194317 小时前
从 C 链表到 Android Looper:MessageQueue 的底层原理一条线讲透
android·数据结构·链表
方白羽17 小时前
Android 中Flags从源码到实践
android·app·客户端