android - 从 FragmentStack 中移除中间 fragment

标签 android android-fragments back-stack

我想删除 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/

相关文章:

java - android 中 IOS 的 UIPickerView 的替代品是什么?

java - PHP Json解析Java对象

java - 如何将此自定义 ListView ArrayAdapter 连接在一起?

java - Android - ViewPager 不显示 fragment

java - 如何将值从 Activity 传递到 Fragment?

android - 修改Android中的返回栈

android - 返回到 Android 中返回堆栈中的不同 Activity

android - 屏幕方向如何避免音频停止(几毫秒)?

android - 契约(Contract)失败 - fragment 标签为空

android - 当我们使用 FLAG_ACTIVITY_NEW_TASK 清除 Activity 堆栈时,OnDestroy 不会触发