【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
}
相关推荐
文人sec1 小时前
MySQL事务与索引做了什么?
android·笔记·mysql
刘洋浪子2 小时前
AndroidStudio保存日志菜单
android
朱涛的自习室2 小时前
从 Prompt 到 Graph:AI 工程的进化史
android·前端·人工智能
157092511344 小时前
ViewBinding与DataBinding区别与选型
android
小乖写代码6 小时前
49款开源Android小游戏
android·游戏
三少爷的鞋6 小时前
小团队的最优解:单 Module + 包内 Clean 架构
android
爱和冰阔落6 小时前
【Linux】两个毫无关系的进程怎么通信?命名管道 FIFO 从原理到 Server/Client 实战
android·linux·数据库·c++·vim
Android-Flutter6 小时前
kotlin 协程 - 核心概念
android·kotlin
年小个大16 小时前
受 go-zero 启发,我给 Flutter 写了一套 CLI 脚手架
android·flutter·架构
Android-Flutter17 小时前
为什么说ActivityThread是主线程?
android·kotlin