【发布时间】:2014-05-12 14:16:57
【问题描述】:
我在片段“A”调用中从服务器获取数据。当我用“B”替换“A”时,从“B”回到“A”后,每次都会调用片段“A”,所以每次都会生成HTTPGET。如何避免这种情况并在活动中重用 REORDER_TO_FRONT 之类的片段?
我正在使用此代码替换新片段
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction.replace(R.id.rl_fragment_content, newFragment,
backStackName);
transaction.addToBackStack(backStackName);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.commit();
当我反击时,
Fragment fragment = null;
fragment = getSupportFragmentManager().findFragmentByTag(
"some_fragment_name");
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction.replace(R.id.rl_fragment_content, fragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.addToBackStack("some_fragment_name");
transaction.commit();
【问题讨论】:
-
您不会将您加载的数据保存在某处吗?然后,您可以简单地检查数据是否已经存在。或者,您可以在
SharedPreferences中保留一个布尔标志,无论数据是否已下载。 -
更多关于在添加到后台堆栈时保存片段状态的信息stackoverflow.com/questions/11353075/…