線形レイアウトに含まれる複数のフラグメントのスタックを作成したいと思います。フラグメントのセットをアクティブにするには、次のコードを使用します(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です。