导航到 Jetpack Navigation 中的另一个 Fragment 后,将 DialogFragment 保留在 backstack 中

时间:2021-07-05 14:17:31

标签: android navigation android-jetpack-navigation

我将 Jetpack Navigation 用于应用程序中的对话框。基本上,我使用生成的操作方法从我的 DialogFragment 导航到另一个片段。但是,当我在导航的 Fragment 中按下后退按钮或调用 findNavController().popBackStack() 时,它不会导航回 DialogFragment,而是返回到打开 DialogFragment 的原始 Fragment。有没有办法将 DialogFragment 保留在后堆栈中,而无需任何解决方法,例如在我导航回来后立即再次手动显示对话框。

先谢谢了。

1 个答案:

答案 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
    }
  }