【问题标题】:Keeping DialogFragment in backstack after navigation to another Fragment in Jetpack Navigation导航到 Jetpack Navigation 中的另一个 Fragment 后将 DialogFragment 保留在 backstack 中
【发布时间】:2021-09-16 07:50:42
【问题描述】:

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

先谢谢了。

【问题讨论】:

    标签: android navigation android-jetpack-navigation


    【解决方案1】:

    我遇到了同样的问题,使用下面的代码,我可以在导航的Fragment中调用findNavController().popBackStack(),但是我不能回到打开DialogFragment的原始Fragment(Activity)。

    dialog.setOnKeyListener { dialog, keyCode, event ->
        if (keyCode == KeyEvent.KEYCODE_BACK){
          this.binding.navHost.findNavController().navigateUp()
          return@setOnKeyListener true
        }else{
          return@setOnKeyListener false
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多