【问题标题】:navigateUp() and popBackStack() not working. Instead, they reload the current fragmentnavigateUp() 和 popBackStack() 不工作。相反,他们重新加载当前片段
【发布时间】:2021-10-25 08:58:36
【问题描述】:

我正在尝试向上导航。在调用方法view?.findNavController().navigateUp() 并使用view?.findNavController().getCurrentDestination() 记录目标时,我看到该函数弹出当前目标,然后再次重新加载它。我不明白为什么会发生这种情况,但我在其他片段中也这样做并且它正在工作。

【问题讨论】:

  • 一种可能性是你要去上一个片段,但是那个片段再次要求 navController 导航到下一个片段。您是否使用 LiveData 触发导航?
  • 为了更好地调试,您可以在父活动中使用 NavController.onDestinationChangedListener 来监控导航返回堆栈中的更改。
  • @ArpitShukla,你是对的。这正是正在发生的事情。在向上导航时,片段要求再次导航到片段中,因为我正在使用 LiveData 来触发导航。为了解决这个问题,我正在更新 MutableLiveData,它会更新 LiveData 然后导航。非常感谢。

标签: android kotlin navigation


【解决方案1】:

问题出现是因为我使用 LiveData 触发导航。为避免此问题,我必须在导航之前更新 MutableLiveData,以便当我从目的地导航时它不会请求返回。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2018-03-11
    相关资源
    最近更新 更多