我创建了以下项目,因此您可以看到我的确切代码以及发生了什么: 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);
当我在第一个片段时(没有任何背板)。我可以在第二个时间显示和隐藏选项卡。它有时会在更改标签时出错。
当我在Backstack中的第二个片段时,我隐藏了第三个片段。我看到第二个和第三个片段都调用onrefresh但第三个片段没有显示。
我对发生的事情以及为什么这不容易感到困惑。
以下是我通常会得到的错误 03-27 15:26:31.029:E / AndroidRuntime(5505):java.lang.IllegalStateException:已添加片段:Fragment3 {41f2e390#2 id = 0x1020002 fragment3}
答案 0 :(得分:1)
我仍然想知道为什么以上不起作用。但我的修复是使用片段创建另一个活动而没有标签。这似乎运作良好。但我感兴趣的是,如果他们不打算更改标签,而且每个片段都没有标签。
答案 1 :(得分:0)
我有类似的情况 - 只是我使用NAVIGATION_MODE_LIST
而不是标签。当我从另一个片段调用片段时遇到类似问题,例如单击列表项打开项目详细信息。
现在我调用主活动中的所有片段,这些片段允许我控制操作栏的设置。每当导航列表消失时,我只需在调用片段时调用NAVIGATION_MODE_STANDARD
,为其他片段调用NAVIGATION_MODE_LIST
。