我的活动中有5个片段。 片段A是默认值。
并且有滑动菜单可以切换所有片段中的其他4个片段。 所以我想只将片段A添加到后台..所以 当从A调用片段B / C / D / E时,A将被添加到后台堆栈中。
现在说片段B,我从菜单抽屉中选择片段C.没有将它添加到Backstack。现在按下后退按钮我可以看到我的默认片段是正确的。但是,当我尝试从A更改任何片段B / C / D / E时,片段A仍然可见。
fA->添加到backstack-> fB-> fC->返回按钮 - > fA->添加到backstack ...-> fB ...但片段A仍然在这里可见。 对此有何解决方案?
这是我的代码:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.flContainer, fragment, fragment.getClass().getSimpleName());
if (isAdd) {
transaction.addToBackStack(fragment.getClass().getSimpleName());
}
transaction.commit();
drawerLayout.closeDrawer(Gravity.RIGHT);
答案 0 :(得分:0)
这样做
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.addToBackStack(fragment.getClass().getSimpleName())
.replace(R.id.frame_container, fragment).commit();
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}