如何使用导航组件找出前一个片段的内容

OPW*_*agg 8 android android-fragments kotlin android-navigation

我试图找出前一个片段在 backstack 中的内容,如果它是我想要的片段,则返回到那个片段,否则转到另一个片段。我在查找之前片段的名称/ID 时遇到问题。我目前的设置如下:

Fragment 1 -> Fragment 2 -> Fragment 3 如果 Fragment 3 的前一个 id 是 >Fragment 2,则返回它并带参数。

但我也会遇到这种情况:

Fragment 4 -> Fragment 3 这里我还希望能够检查 Fragment 3 的前一个 id/name 是否等于 Fragment 4,以及它是否返回到带有参数的 Fragment。

基本上片段 3 会有不同的路径,我希望能够确定它接下来将转到哪个前一个片段。

我的问题是我无法访问以前 Fragments 的信息。检查是否有任何可能。我是使用 Android 导航组件的新手,因此不胜感激。

如果问题看起来有点令人困惑,请告诉我,以便我可以在需要时重写它。

谢谢!

小智 0

解决此问题的一种方法是从前一个片段中传递一个键作为参数,以便在当前片段中,您将检查传递的键并根据它采取行动。例如。片段 A 和 B 都导航到片段 C,并且您希望根据之前的场景在片段 C 中执行操作。您可以做的是让片段 C 采用参数“fragmentOrigin”,然后根据前面的片段将参数设置为“fragmentA”或“fragmentB”。这样,在片段 C 中,您可以检查片段Origin == 片段 A 是否成立;{做某事} else iffragmentOrigin == 片段 B {做其他事}