【发布时间】:2015-03-10 21:46:35
【问题描述】:
您好,我有一个活动和三个片段。当我替换我的第一个片段时,我将它添加到 backstack。
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.replace(R.id.authentication_parent0_linear,
new LoginFragment(), LOGINTAG);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
但是当我在其他两个片段之间移动时,我不会将它们添加到 backstack。所以每当我从其他两个片段返回时,我需要返回到第一个片段。当我删除第一个片段并添加第二个片段时它工作正常片段或首先删除并添加第三个,即当我按回时,我将回到第一个片段。但是当我在删除第二个并添加第三个或删除第三个并添加第二个等这两个片段之间导航时。在那种情况下,当我按下返回时,我正在退出应用程序,并且 backstackcount 显示为零,但是当我第一次删除第一个片段时,我将它存储在 backstack 中。
getFragmentManager()
.beginTransaction()
.replace(R.id.authentication_parent0_linear,
new SignupFragment(), SIGNUPTAG).commit();
所以我的问题是片段回栈是否会在提交之间重置。如果是这样,我怎样才能第一次在后台获取存储的片段
【问题讨论】:
-
让我了解您想要实现的目标。您有片段 A、B、C。您从片段 A 开始。从这一点开始,您希望在任何导航路径后用户按下后退都会将用户带到片段 A?例如。 A->B->C -> "back" -> A 再比如:A->B> back -> A等?
-
这正是我想要的。我以为我这样做是因为我只将片段 A 存储在后台堆栈中。我尝试了很多东西,但我放弃了,只有通过片段 A 导航到片段 b 和 c,但在 b 和 c 之间没有直接导航。如果我这样做,一切正常
标签: java android android-fragments