2012-09-21 46 views
0

這裏就是創建我的片段代碼:安卓listfragment創建兩次

if (savedInstanceState == null) { 
      // During initial setup, plug in the details fragment. 
      FlightListFragment listFragment = 
        FlightListFragment.newInstance(mSearchParams); 
      getSupportFragmentManager().beginTransaction().add(
        android.R.id.content, listFragment).commit(); 
} 

但所有片段的方法調用兩次! OnCreateView,OnActivityCreated,OnStart。

爲什麼?
謝謝。

回答

3

您的片段是否設置爲保留實例?有可能是你正在產卵的片段的2個實例

也許嘗試加入電話查詢類似

if (getSupportFragmentManager.findFragmentByTag("myFragment") != null) 
{ 
     FlightListFragment listFragment = 
       FlightListFragment.newInstance(mSearchParams); 
     getSupportFragmentManager().beginTransaction().add(
       android.R.id.content, listFragment).commit(); 
} 
+0

有幫助,感謝 – rocknow

+0

@克里斯 - 鬱金香:可以,請讓我們知道爲什麼我們需要把上面的條件放在兩次,以防止OnCreateView,OnActivityCreated,OnStart。我也面臨同樣的問題,你的上述情況對我有用但我想知道它的原因。謝謝:) –

+0

如果片段設置爲保留實例,它不會在旋轉時被銷燬,因此您需要確保不會產生重複片段。如果產生了重複的片段,它會調用onCreate兩次:) –