目前,我有这样的片段堆栈。在android中更改后台碎片的位置?
F1 - > F2 - > F3 - > F4 - > F5
并且在一个活动,我有一个按钮B1。
我的问题是,当我按B1按钮从活动如何更新像下面的片段堆栈。
F2→F3→F4→F5→F1。
我在addtobackstack时使用的字符串变量。
目前,我有这样的片段堆栈。在android中更改后台碎片的位置?
F1 - > F2 - > F3 - > F4 - > F5
并且在一个活动,我有一个按钮B1。
我的问题是,当我按B1按钮从活动如何更新像下面的片段堆栈。
F2→F3→F4→F5→F1。
我在addtobackstack时使用的字符串变量。
您可以通过在代码中使用Stack来解决此问题。在片段事务中,您必须使用add来代替片段。在按钮B1上,您必须弹出堆栈中的碎片F1,然后再将其推入堆栈。我认为这可能适合你。
我解决了这个这个代码:
public void fragmentInflater(Fragment newFragment) {
FragmentTransaction transaction;
FragmentManager fragmentManager = getSupportFragmentManager();
transaction = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(newFragment.getClass().getName());
if (oldFragment == null) {
transaction.replace(R.id.container, newFragment, newFragment.getClass().getName());
transaction.addToBackStack(null);
} else {
transaction.replace(R.id.container, oldFragment, newFragment.getClass().getName());
}
transaction.commit();
}
使用此方法添加片段,您的容器,你会实现你想要的。它也会阻止将重复的片段添加到您的容器中。
我会在我的代码中试试这个。这听起来像会起作用。 –