如何在导航抽屉中重新加载当前选定的片段

时间:2014-09-12 12:09:37

标签: android android-fragments

我有一个带有4个项目的导航抽屉,每个项目在点击时加载4个不同的片段。所有片段都包含一个列表视图,该视图使用AsyncTask显示从Web获取的数据。我的问题是这样的:假设我点击了第二个项目并且该片段加载得很好。但是当我再次单击相同的项目时,片段也会再次加载。有没有办法可以阻止当前选中的片段再次加载?也许有一些方法可以禁用当前选中的项目被点击。我相信一定有更好的方法。感谢。

1 个答案:

答案 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
}