2011-07-28 5 views
1

線形レイアウトに含まれる複数のフラグメントのスタックを作成したいとします。私がしているF3、F5および画面上に表示F6がレイアウトごとに複数のフラグメントを含むバックスタック

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

を呼び出すとき

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

:コードを(R.id.contentがのLinearLayoutである)以下、私が使用しactivtyにフラグメントのセット置くこと 戻るボタンf2を押すと、f3、f4が表示されます。

期待される動作F5で、F6 - >戻る - > F3、F4 - >バック> F1、F2

答えて

1

あなたはチェーンがそのように呼び出すことができない、あなたはreplaceあたりcommitまたはaddを呼び出す必要があります