【问题标题】:Android navigation component back stackAndroid导航组件回栈
【发布时间】:2020-09-11 19:12:56
【问题描述】:

我用片段 fragA->fragB->fragC-fragD->fragE->fragF->fragG 创建了一个导航图。从某些推送通知中,用户必须使用findNavController().navigate(R.id.fragG) 直接转到 fragG,当用户点击后退按钮时,他必须转到 fragF,但现在返回到导航图的第一个片段,因为 fragB->fragC-fragD->fragE->fragF不添加到后台堆栈。当用户导航到最后一个按下后退按钮时,可以将此片段添加到堆栈吗?谢谢。

【问题讨论】:

标签: android android-fragments kotlin android-architecture-navigation fragment-backstack


【解决方案1】:

这不是官方答案,但可以作为一种解决方法。

您可以通过顺序导航手动创建后台堆栈。

fun openGFromPushNotification(){
   navigate(R.id.fragB)
   navigate(R.id.fragC)
   navigate(R.id.fragD)
   navigate(R.id.fragE)
   navigate(R.id.fragF)
   navigate(R.id.fragG)
}

【讨论】:

  • 谢谢,这对我很有帮助。但令人沮丧的是,这是最好的选择。您必须小心只使用目标 ID R.id.fragB,而不是操作 ID R.id.fragA_to_fragB 或安全参数 FragADirections.actionFragAFragmentToFragBFragment()。只有目标 ID 有效 - 其他 ID 会抛出 Navigation X cannot be found from the current destination 之类的异常。
猜你喜欢
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
相关资源
最近更新 更多