我想删除 fragment 堆栈的中间 fragment 。即我有 fragment A、B、C、D 在这种情况下,我想在不删除 D 的情况下删除 B 或 C。
有什么办法吗?因为如果我删除 D 并在删除 B 或 C 后重新添加它,那么创建 View 并再次添加所有详细信息将需要时间。
最佳答案
调用 fragment 时使用标签,每个 fragment 都有一个唯一的标签。然后使用此标记从 fragment 堆栈中删除 fragment 。
像这样在 fragment 之间切换:
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();
关于android - 从 FragmentStack 中移除中间 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744105/