一、首先启用Fragment的返回事件监听。
requireActivity()
.onBackPressedDispatcher
.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(intercept) {
override fun handleOnBackPressed() {
Log.e("nil", "handleOnBackPressed==>>")
backAction.invoke()
}
})
二、当Fragment界面被弹窗覆盖之后,fragment的返回键监听将会失效。即在弹窗可视时,触发返回事件时,将不会走Fragment页面的返回监听。
处理方法为重写Dialog的监听事件,监听返回事件。
dialog.setOnKeyListener { dialog, keyCode, event ->
keyCode == KeyEvent.KEYCODE_BACK
}