【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
}
相关推荐
努力努力再努力wz16 分钟前
【MySQL入门系列】掌握表数据的 CRUD:DML 核心语法与执行逻辑解析
android·开发语言·数据结构·数据库·c++·b树·mysql
zh_xuan2 小时前
Android gradle任务
android·gradle构建
Grackers3 小时前
Android Perfetto 系列 10:Binder 调度与锁竞争
android·binder
李白你好3 小时前
Android 自动化渗透测试指令生成
android·自动化
CeshirenTester4 小时前
Claude Code 不只是会写代码:这 10 个 Skills,才是效率分水岭
android·开发语言·kotlin
朝星6 小时前
Android开发[2]:Flow
android·kotlin
zzb15806 小时前
Android Activity 与 Intent 学习笔记
android·笔记·学习
studyForMokey6 小时前
【Android面试】动画 & Bitmap
android·面试·职场和发展
黑牛儿6 小时前
面试高频问题:从浏览器请求到PHP响应:完整流程拆解
android·后端·面试·php
y小花8 小时前
安卓USB服务概述
android·usb