【发布时间】:2020-04-17 13:17:47
【问题描述】:
我使用 Android 导航架构组件。
我有三个片段 A、B 和 C
- 片段 A -> 片段 B -> 片段 D
- 片段 A -> 片段 C -> 片段 D
在片段 D 上,我有一个用于验证修改和完成的按钮。 从这个片段 D 我想:
- 当我从 Fragment B 来时返回 Fragment B(我用
findNavController().navigateUp()) - 当我从Fragment C来的时候回到Fragment A(我不知道该怎么做)
如果我从 Fragment D 来而不返回 Fragment C,如何直接返回 Fragment A?
我是否应该等待 Fragment C 的返回并重新处理以执行 findNavController().NavigateUp()。
【问题讨论】:
-
勾选这个,stackoverflow.com/questions/14971780/…你可以按名字弹出栈。
-
谢谢,但这迫使我在我的片段 D 中创建一个条件?如果前一个片段是C,那么去A,否则如果前一个片段是B,那么去B?
-
如果你想这样导航,那你为什么不简单地使用片段事务呢?
-
@A_Singh7 更好的评论,我只是看了一眼手机上的评论。请务必使用 Fragment Transaction 并以这种方式管理您的堆栈。
-
我通过在片段 D 中使用此代码来实现这一点:
if (isComeFromC == true) { findNavController().popBackStack(R.id.FragmentC, false) } findNavController().navigateUp()
标签: android navigation fragment android-navigation