【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 小时前
短思考第263天,每天复盘10分钟,胜过盲目努力一整年
android·前端·后端
安卓兼职framework应用工程师2 小时前
Android 10.0 按键智能机按键连续响两次的异常处理
android·audio·audioservice·按键音·按键声音
studyForMokey2 小时前
【Android 项目】个人学习demo随笔
android
吃喝不愁霸王餐APP开发者2 小时前
利用责任链模式解耦多平台(美团/饿了么)霸王餐接口的适配逻辑
android·责任链模式
百***78752 小时前
Step-Audio-2 轻量化接入全流程详解
android·java·gpt·php·llama
yangpipi-4 小时前
《C++并发编程实战》第5章 C++内存模型和原子操作
android·java·c++
云水木石6 小时前
Android 的下一个战场:Windows 应用与游戏?
android·windows·游戏
雨声不在7 小时前
Android文字渐变的实现
android·textview
GoldenPlayer7 小时前
KTS语法
android
GoldenPlayer7 小时前
后台服务Service销毁逻辑+单例造成的内存泄露
android