从FragmentStack中删除Middle片段

AJi*_*Jit 5 android android-fragments back-stack

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

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

小智 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);
    }
Run Code Online (Sandbox Code Playgroud)

例如:

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.remove(fragmentManager.findFragmentByTag(tag)).commit();
Run Code Online (Sandbox Code Playgroud)