[英]Android changing setNavigationMode per fragment is crashing the app
我創建了以下項目,因此您可以看到我的確切代碼以及正在發生的情況: https : //github.com/CorradoDev/TabsTest/commit/8f054dab2371b791c4061ceb511413f720f65d67
基本上,我想做的是隱藏某些頁面的標簽,並在其他頁面中顯示它們。
下面是我用來在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 = 0x1020002fragment3}
我仍然想知道為什么以上方法不起作用。 但是我的解決方法是使用片段和無選項卡創建另一個活動。 這似乎很好。 但是我很感興趣,如果他們不希望您更改選項卡並且每個片段都沒有選項卡。
我有類似的情況-只是我使用NAVIGATION_MODE_LIST
而不是標簽。 當我從另一個片段中調用一個片段時,我遇到了類似的問題,例如,單擊列表項以打開該項的詳細信息。
現在,我從主要活動中調用所有片段,這使我可以控制操作欄的設置。 每當導航列表消失時,只要調用該片段,我就調用NAVIGATION_MODE_STANDARD
,而其他片段則調用NAVIGATION_MODE_LIST
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.