2015-06-15 63 views
0

我有一個簡單的活動,我只在佈局中有一個框架。活性有3個片段:處理碎片導航的最佳做法?

  1. 搜索字段
  2. 結果列表
  3. 細節

創建第一片段onCreate,然後使用監聽器模式,當我需要創建其他2個片段他們。我跟蹤當前片段。一切工作就像它應該。

目前,處理高達導航我已經在活動下面的代碼:

@Override 
public boolean onNavigateUp() { 
    if (currentFragment == detailsFragment) { 
     currentFragment = listFragment; 
     getFragmentManager().popBackStack(); 

     return true; 
    } 
    else if (currentFragment == listFragment) { 
     currentFragment = searchFragment; 
     getFragmentManager().popBackStack(); 

     return true; 
    } 
    else { 
     return super.onNavigateUp(); 
    } 
} 

是上面的代碼來處理了導航正確的做法還是有更好,更清潔的方式來做到這一點?

回答

0

當您將片段添加到活動中時,只需添加addToBackStack(null)並且這會導致您的後退按鈕將片段彈出到前一個片段,那麼在這種情況下就不需要重寫此方法。

此外,如果你把片段與replace方法效果很好,如果你把片段與add方法,它可能會導致一個空白屏幕如果沒有片段使用replace將導致活動出現在那裏之前

當最後一個片斷被彈出時退出

+0

第一個片斷不被添加到後臺堆棧中。另外2個是的。按回來工作正常。但是,如果沒有上述代碼,按下就會關閉活動並且不彈出當前片段。 –