需求場景:
在開發中遇到下面這樣場景:
a.建立 Fragment A 顯示。 這時棧的結構是:
1.Fragment A
複制
b.建立 Fragment B 并 顯示。 從下到上看,這時棧的結構是:
2.Fragment B
1.Fragment A
複制
c.建立 Fragment C 并 顯示。 從下到上看,這時棧的結構是:
3.Fragment C
2.Fragment B
1.Fragment A
複制
那麼,如何從 Fragment C 一次性跳到 Fragment A 呢?
實作:
入棧時,使用方法
addToBackStack(nameForBackstackstate)
複制
傳入了一個參數 name,這是個Fregment的标示,下面還要用到。
代碼:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
String name = fragment.getClass().getName();
fragmentTransaction.replace(R.id.container, fragment).addToBackStack(nameForBackstackstate).commit();
複制
彈出時這麼做:
fragmentManager.popBackStackImmediate(FragmentA.class.getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
這個方法的第二個參數
POP_BACK_STACK_INCLUSIVE
複制
訓示了這個彈出行為是 一次性出棧“指定的name的”Fragment 以上的所有 Fragment。
參考:
http://www.cnblogs.com/qixing/p/4015262.html