fragment监听返回键
setOnKeyListener
通过给fragment
的根view
添加按键按下监听,此方法接收的按键监听用法类似于Activity
中的onKeyDown(int, KeyEvent)
1 | // 设置view在触摸模式下可获得焦点,从而能够接收按键事件 |
例如监听返回键按下
1 | view.setFocusableInTouchMode(true); |
这其中:
setFocusableInTouchMode(boolean)
是用于设置view
在触摸模式下是否可获取焦点,从而能够接收按键事件
requestFocus()
用于请求将焦点设置到指定的view
,当调用这个方法时,系统会尝试将焦点移到指定的view
上,使得该view
能够响应用户的输入事件,比如按键事件。通常requestFocus()
会与setFocusableInTouchMode(true)
一起使用,以确保在触摸模式下能够接收焦点
setOnKeyListener
是用于设置按键事件监听器的方法
OnBackPressedCallback
该方法用于处理用户按下返回按钮的情况,类似于Activity
中的onBackPressed()
1 | OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) { |
这其中:
OnBackPressedCallback
是AndroidX Lifecycle
库中的类,创建一个回调对象,用于处理返回按钮按下的事件,true
代表启用该回调,默认为启用;当用户按下返回按钮时执行handleOnBackPressed
中的逻辑
getOnBackPressedDispatcher()
用于获取一个OnBackPressedDispatcher
对象,通过该对象注册回调以处理返回按钮的事件
addCallback()
用于添加处理返回按钮按下的事件,接收一个getViewLifecycleOwner()
参数和onBackPressedCallback
回调