繁体   English   中英

Android每个片段更改setNavigationMode导致应用崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM