从FragmentStack中删除Middle片段

时间:2014-05-19 17:50:51

标签: android android-fragments back-stack

我想删除片段堆栈的中间片段。即我与片段A,B,C,D叠加 在这种情况下,我想删除B或C而不删除D.

有没有办法做到这一点?因为如果我删除D并在删除B或C后重新添加它,则需要时间来创建视图并再次添加所有细节。

1 个答案:

答案 0 :(得分:3)

在使用具有唯一标记的每个片段调用片段时使用标记。然后使用此标记从片段堆栈中删除片段。

在这样的片段之间切换:

 public void switchContent(final Fragment fragment, final String TAG) {
        CgUtils.showLog(TAG, "in switchcontent with fragment passed " + fragment);
        mContentFragment = fragment;
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            public void run() {
                getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment, TAG)
                        .commitAllowingStateLoss();
                fragment.setRetainInstance(true);
                getSlidingMenu().showContent();
                // .commit();
            }
        }, 50);
    }

例如:

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.remove(fragmentManager.findFragmentByTag(tag)).commit();