目前,我有這樣的片段堆棧。在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();
}
使用此方法添加片段,您的容器,你會實現你想要的。它也會阻止將重複的片段添加到您的容器中。
我會在我的代碼中試試這個。這聽起來像會起作用。 –