【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
}
相关推荐
6***B486 分钟前
存储过程(SQL)
android·数据库·sql
学困昇1 小时前
C++中的异常
android·java·c++
Jerry2 小时前
问题记录 - Android IdleHandler 没有执行
android
没有了遇见2 小时前
Android ButterKnife Android 35情况下 适配 Gradle 8.+
android
方白羽2 小时前
Android多层嵌套RecyclerView滚动
android·java·kotlin
菜就多学3 小时前
SurfaceControlViewHost 实现跨进程UI渲染
android·设计
2501_915106324 小时前
iOS App 测试工具全景分析,构建从开发调试到线上监控的多阶段工具链体系
android·测试工具·ios·小程序·uni-app·iphone·webview
小羊在奋斗5 小时前
MySQL表的约束:从基础到核心(附场景+案例)
android·数据库·mysql
e***19355 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
方白羽5 小时前
Kotlin遇上Java 静态方法
android·java·kotlin