1

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

4

1 に答える 1

1

そのように通話を連鎖させることはできません。電話をかける必要がありますcommitreplaceadd

于 2011-07-28T14:20:43.723 に答える