2013-03-27 41 views
2

我創建了下面的項目,所以你可以看到我確切的代碼和正在發生的事情的應用程序: https://github.com/CorradoDev/TabsTest/commit/8f054dab2371b791c4061ceb511413f720f65d67Android的改變每個片段setNavigationMode崩潰

基本上就是我想要做的是隱藏在一些網頁上的標籤並在其他頁面中顯示它們。

下面是我使用,以顯示在的onResume選項卡中的代碼

 if(getActivity().getActionBar().getNavigationMode()==ActionBar.NAVIGATION_MODE_STANDARD){ 
     getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    } 

然後躲我做下面的簡歷標籤:

getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 

當我在第一個片段(在後臺沒有任何東西)。我可以在第二次顯示並隱藏標籤。它有時會在更改標籤時發生錯誤。

當我在返回堆棧的第二個片段,我隱藏了第三個片段。我看到第二個和第三個片段都調用onrefresh,但第三個片段不顯示。

我對正在發生的事情感到困惑,爲什麼這並不容易。

下面是錯誤一般來說,我 03-27 15:26:31.029:E/AndroidRuntime(5505):java.lang.IllegalStateException:片段已經添加:Fragment3 {41f2e390#2的ID = 0x1020002 fragment3}

+0

這對我來說也是一個問題,有趣的是將模式設置爲片段onResume中的Tabs會爲我生成一個無限循環:( – 2014-04-24 13:08:00

回答

1

我仍然想知道爲什麼上述不起作用。但我的修復是用碎片創建另一個活動,沒有選項卡。這似乎運作良好。但是我感興趣的是他們不打算更改標籤,也不打算每個片段選項卡。

0

我有類似的情況 - 只是我用NAVIGATION_MODE_LIST而不是製表符。當我從另一個片段調用片段時遇到類似的問題,例如點擊列表項打開項目細節。

現在我調用主要活動的所有片段,它允許我控制操作欄的設置。每當導航列表消失時,我只需在調用片段時調用NAVIGATION_MODE_STANDARD,而在其他片段調用NAVIGATION_MODE_LIST