2016-11-16 49 views
2

目前,我有這樣的片段堆棧。在android中更改後臺碎片的位置?

F1 - > F2 - > F3 - > F4 - > F5

並且在一個活動,我有一個按鈕B1

我的問題是,當我按B1按鈕從活動如何更新像下面的片段堆棧。

F2→F3→F4→F5→F1。

我在addtobackstack時使用的字符串變量。

回答

1

您可以通過在代碼中使用Stack來解決此問題。在片段事務中,您必須使用add來代替片段。在按鈕B1上,您必須彈出堆棧中的碎片F1,然後再將其推入堆棧。我認爲這可能適合你。

+0

我會在我的代碼中試試這個。這聽起來像會起作用。 –

1

我解決了這個這個代碼:

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(); 
} 

使用此方法添加片段,您的容器,你會實現你想要的。它也會阻止將重複的片段添加到您的容器中。