2011-07-28 19 views
1

我想創建包含在線性佈局中的多個碎片的堆棧。 把設置片段activty我用下面的代碼(R.id.content是的LinearLayout):每個佈局具有多個碎片的揹包

private void pushToBackStack(final Fragment... fragments) { 
    final FragmentManager fm = getSupportFragmentManager(); 

    final FragmentTransaction ft = fm.beginTransaction(); 

    for (int i = 0; i < fragments.length; i++) { 

     if (i == 0) { 
      ft.replace(R.id.content, fragments[i]); 
     } else { 
      ft.add(R.id.content, fragments[i]); 
     } 
    } 
    ft.addToBackStack(null); 
    ft.commit(); 
} 

當我打電話

pushToBackStack(f1, f2); 
pushToBackStack(f3, f4); 
pushToBackStack(f5, f6); 

這兒有F3,F5和F6顯示在屏幕上,然後按返回按鈕f2後,顯示f3,f4。

預期的行爲是F5,F6 - >返回 - > F3,F4 - >返回 - > F1,F2

回答

1

你不能調用鏈這樣一來,你就需要調用每個replaceaddcommit