5

我想要獲得所有新的ActionBar和碎片API的句柄。 我有一個主要活動,我希望它管理兩個不同的選項卡。 我使用ActionBarSherlock來支持比ICS更早的版本。碎片onResume不被調用片段被分離後,然後重新連接

每個標籤都包含自己的Fragment(每一個是SherlockListFragment一個子類) 我得到它的工作基本上是不錯,但我有我敢肯定,這是一個愚蠢的問題,但我無法弄清楚然後:

第一次顯示每個片段時,一切正常,列表已填充,因此在ActionBar中的MenuItems。

但第二次您看到一個選項卡(swicth和切換回)之後,無論是列表填充還是ActionBar MenuItems。

這是我如何切換標籤:

@Override 
public void onTabSelected(Tab tab, FragmentTransaction transaction) { 
    SherlockListFragment toAttach = // Find the right fragment here... 

    if (toAttach != null) { 
     if (toAttach.isAdded() == false) { 
      transaction.add(R.id.tab_placeholder, toAttach, 
        REMINDER_FRAGMENT_TAG); 
     } else { 
      transaction.attach(toAttach); 
     } 
    } 
} 

而且onTabUneselect我卸下片段:

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction transaction) { 
    SherlockListFragment toDetach = // Find the right fragment 
    if (toDetach != null) { 
     transaction.detach(toDetach); 
    } 
} 

我填充列表和動作條菜單中的onResume:

@Override 
public void onResume() { 
    super.onResume(); 
    setHasOptionsMenu(true); 
    fillRemindersList(); 
} 

我也嘗試過處理通信和onCreateView但它並沒有幫助...

那麼我在這裏錯過了什麼? 如果我沒有意識到我的代碼中存在其他問題,請告訴我。

謝謝!

編輯:

我只是證實了onResume這麼想的被調用後,我切換標籤,這是錯誤的definetly因爲我分離和重新連接他們... 我是否切換標籤的錯誤的方法?

回答

2

嘗試。

+0

謝謝,我希望這是答案,但它不再相關,因爲我切換到列表導航。 (在我的情況下更有意義,並且完美地工作:)) – 2012-05-06 20:26:45

+0

在我調用'FragmentTransaction.commit()'之前調用片段#1中的'FragmentTranaction.remove(fragment#1)'幫助我強制片段#1通過onPause()... onDestroyView()替換並通過onCreateView()... onResume()時返回到片段#1按下後退按鈕。 – 2013-03-04 09:44:54

0

在此代碼之外執行beginTransaction()和commit()我假設還是忘記了? 你可以看到從樣品以及這裏使用一個技巧:使用onTabUnselected transaction.remove(片段)和transaction.replace在onTabSelected https://github.com/JakeWharton/ActionBarSherlock/blob/master/samples/fragments/src/com/actionbarsherlock/sample/fragments/FragmentTabs.java

+0

都不!正如你所看到的,我正在實現ActionBar.TabListener接口。在TabListener回調函數中,您可以使用FragmentTransaction(即 - 「beginned」),並且您可以調用commit,如文檔中明確指出的那樣。 此外,碎片正在交換,所以它不是... – 2012-04-25 05:14:52

+0

啊的確,對此感到遺憾。 – 2012-04-25 09:45:34

相關問題