嵌套导航图的循环参考

bab*_*ger 8 navigation android fragment circular-reference illegalargumentexception

我有一个复杂的导航结构,我从一个导航图开始,然后根据一些逻辑,决定要转到哪个导航图。然而,两个导航图共享 3 个其他导航图。见下图

例子

目前,如果我尝试在 A 和 B 中包含每个导航图,我会收到循环引用错误。我还尝试创建一个全局操作,这会导致非法参数异常,因为它在导航图中不存在。

请帮忙!!!

Rui*_*Rui 0

我也不知道如何解决这个问题。导航组件应该允许通过从初始图形传递某种 ID 来重用模块化图形。

我能想到的唯一解决方法是创建具有不同来源的图表的副本。

例如,“Graph1”现在有两个版本:“Graph1_from_GraphA”和“Graph1_from_GraphB”。因此“GraphA”和“GraphB”将分别引用它们。

如果图形不是那么远,还有条件导航的解决方案,如官方文档(https://developer.android.com/guide/navigation/navigation-conditional)中所述,我们可以在其中弹出BackStack 在 NavController 中,结果在 SavedStateHandle 中,然后在前面的片段中我们可以重定向到所需的目的地。