需求
在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
}