我有一个3片段的活动。第一个片段不会添加到后台堆栈中。所以,我的导航是:在活动中跳过片段?
A - >乙 - > C,或 A - >ç
我实现onNavigateUp
从堆栈中取出碎片和它的作品。
我还在操作栏上有一个按钮,它清除碎片中的信息并切换到第一个碎片。
如果我在第三个片段中,然后单击该按钮转到第一个片段,将片段替换为足以从后台堆栈中删除第二个和第三个片段,或者我也应该调用getFragmentManager().popBackStack()
?
编辑
我加入这个代码移回第一个片段:
getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
switchFragment(fragmentA, false);
fragmentA.clear();
而且所有switchFragment所做的是:
protected void switchFragment(Fragment fragment, boolean addToBackStack) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.container_fragments, fragment, fragment.getClass().getSimpleName());
if (addToBackStack) {
ft.addToBackStack(fragment.getClass().getSimpleName());
}
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
currentFragment = fragment;
}
然而,即使fragmentA.clear()
被称为,textviews不清除。
是否因为片段仍然创建?