天天看點

android開發(41) Fragment跳轉到棧底部需求場景:實作:

需求場景:

在開發中遇到下面這樣場景:

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