我有一个带有4个项目的导航抽屉,每个项目在点击时加载4个不同的片段。所有片段都包含一个列表视图,该视图使用AsyncTask显示从Web获取的数据。我的问题是这样的:假设我点击了第二个项目并且该片段加载得很好。但是当我再次单击相同的项目时,片段也会再次加载。有没有办法可以阻止当前选中的片段再次加载?也许有一些方法可以禁用当前选中的项目被点击。我相信一定有更好的方法。感谢。
答案 0 :(得分:5)
您可能正在将Fragment
添加到FrameLayout
或任何其他类型的容器中。在开始交易并更换容器中的片段之前,您可以通过以下代码检查您尝试添加的片段是否已经存在:
private void openFragment(Fragment newFragment){
Fragment containerFragment = getFragmentManager().findFragmentById(R.id.container);
if (containerFragment.getClass().getName().equalsIgnoreCase(newFragment.getClass().getName()))
return;
else
// Start transaction and replace fragment
}