每个布局有多个碎片的Backstack

时间:2011-07-28 13:43:23

标签: android android-fragments fragment

我想创建包含在线性布局中的多个片段的堆栈。 要将一组片段放入激活,我使用以下代码(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 - &gt;返回 - &gt; f3,f4 - &gt;背&GT; f1,f2

1 个答案:

答案 0 :(得分:1)

您不能以这种方式锁定电话,您需要按commitreplace

拨打add