【发布时间】:2015-09-22 16:08:39
【问题描述】:
在 Activity 中有导航抽屉并通过这些代码行更改片段
switch (menuItem.getItemId()) {
case R.id.home:
menuItem.setChecked(true);
drawerLayout.closeDrawer(GravityCompat.START);
if (getSupportFragmentManager().findFragmentByTag("ranking") == null) {
getSupportFragmentManager()
.beginTransaction()
.add(R.id.list_view_container, new HomeFragment(),
"ranking")
.addToBackStack("ranking")
.setTransition(
FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
} else {
getSupportFragmentManager().popBackStack("ranking", 0);
}
return true;
case R.id.current_event:
menuItem.setChecked(true);
drawerLayout.closeDrawer(GravityCompat.START);
if (getSupportFragmentManager().findFragmentByTag("ranking1") == null) {
getSupportFragmentManager()
.beginTransaction()
.add(R.id.list_view_container, new CurrentEvents(),
"ranking1")
.addToBackStack("ranking1")
.setTransition(
FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
} else {
getSupportFragmentManager().popBackStack("ranking1", 1);
}
return true;
}
我希望 Fragment 保留在内存中,这样它就不会一次又一次地重建并一次又一次地从 Internet 获取数据,所以我已经使用上述方法来获取它,但是现在,当我通过导航抽屉一个更改片段时片段正在替换另一个片段并继续,我还必须按返回按钮=创建新片段以退出应用程序的次数。我想要 Backstack 中的片段,但不是像这样互相替换的片段。我一次只想要一种方法。请帮忙
【问题讨论】:
标签: java android android-fragments navigation-drawer