【发布时间】:2015-08-31 19:02:06
【问题描述】:
我有 4 个片段,标签分别为 Fragment1、Fragment2、Fragment3 和 Fragment4。
我在屏幕中添加了片段(1..4):
public void addFragment(Fragment fragment, String tag) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(myLayoutId, fragment, tag);
transaction.addToBackStack(tag);
transaction.commit();
fragmentManager.executePendingTransactions();
}
如何从 backstack Immediate 中删除 Fragment2 和 Fragment3?
场景 1
getSupportFragmentManager().popBackStackImmediate(Fragment2, FragmentManager.POP_BACK_STACK_INCLUSIVE);
此代码删除了 Fragment2、Fragment3、Fragment4。
场景 2
getSupportFragmentManager().popBackStackImmediate(Fragment3, 0);
getSupportFragmentManager().popBackStackImmediate(Fragment2, 0);
此代码为 Fragment3 和 Fragment2 调用 onCreateView(为什么?!)。但是 Fragment 4 已经被移除,Fragment2 是可见的。
即我要:
添加 Fragment1、Fragment2、Fragment3、Fragment4
执行方法 removeFragments(Fragment2, Fragment3) 并且应该删除此片段。 onCreateView 不得被执行。删除后我需要有 Fragment1 和 Fragment4
按一次后退按钮:Fragment4 应该在没有 onCreateView 的情况下移除 Fragment4,Fragment1 应该是可见的。
【问题讨论】:
标签: android android-fragments android-support-library