2014-09-12 72 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 
}