【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
}
相关推荐
享哥。1 小时前
android MVP模式代码示例
android
qq_717410013 小时前
删除设置-流量使用情况、更多
android
QuantumLeap丶3 小时前
《Flutter全栈开发实战指南:从零到高级》- 23 -混合开发与WebView
android·flutter·ios
_李小白4 小时前
【Android FrameWork】延伸阅读:ViewRootImpl如何管理整个view世界
android
哈哈~haha5 小时前
UI5_Walkthrough_Step 16: 对话框(Dialogs)和片段(Fragments)
dialog·ui5·fragment
Yang-Never6 小时前
Open GL ES->以指定点为中心缩放图片纹理的完整图解
android·java·开发语言·kotlin·android studio
介一安全6 小时前
【Frida Android】实战篇11:企业常用加密场景 Hook(1)
android·网络安全·逆向·安全性测试·frida
峥嵘life6 小时前
Android EDLA 认证测试内容详解
android
eybk6 小时前
局域网文件传输器安卓版本+win版本
android·python
未来猫咪花6 小时前
LiveData "数据倒灌":一个流行的错误概念
android·android jetpack