我将 Jetpack Navigation 用于应用程序中的对话框。基本上,我使用生成的操作方法从我的 DialogFragment 导航到另一个片段。但是,当我在导航的 Fragment 中按下后退按钮或调用 findNavController().popBackStack() 时,它不会导航回 DialogFragment,而是返回到打开 DialogFragment 的原始 Fragment。有没有办法将 DialogFragment 保留在后堆栈中,而无需任何解决方法,例如在我导航回来后立即再次手动显示对话框。
先谢谢了。
答案 0 :(得分:0)
我遇到了同样的问题,使用下面的代码,我可以在导航的 Fragment 中调用 findNavController().popBackStack(),但是我无法回到打开 DialogFragment 的原始 Fragment(Activity)。< /p>
dialog.setOnKeyListener { dialog, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_BACK){
this.binding.navHost.findNavController().navigateUp()
return@setOnKeyListener true
}else{
return@setOnKeyListener false
}
}