android開發(41) Fragment跳轉到棧底部

  • 2020 年 3 月 16 日
  • 筆記

需求場景:

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

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