2014-09-12 74 views
1

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

+0

保持对当前可见的片段的检查和抽屉项目位置是点击或使用包含显示的当前位置的标志,并且每次在列表项上单击匹配该值if(!current_position == position_justclicked){//在此处加载片段} – MOSO 2014-09-12 12:32:29

回答

4

您可能会将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 
}