我想删除片段堆栈的中间片段。即我与片段A,B,C,D叠加 在这种情况下,我想删除B或C而不删除D.
有没有办法做到这一点?因为如果我删除D并在删除B或C后重新添加它,则需要时间来创建视图并再次添加所有细节。
答案 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();