我在我的应用程序中使用带有选项卡的ActionBar以及旧式菜单。当您进入与菜单项关联的片段时,我想保持ActionBar可见,但取消选择所有选项卡。
我试过了:
_actionBar.selectTab(null);
但这引发了一个例外。
PS我实际上使用ActionBarSherlock来兼容,如果这有所不同。
您无法取消选择标签,您认为会发生什么?应始终选择其中一个选项卡。
想想你的用户。他们不会期待这种行为。
抓住它:)
我只测试了它,它工作,选项卡下面的蓝色下划线消失了,这正是我想要做的。
try {
ActionBar actionbar = (ActionBar) getActionBar();
actionbar.selectTab(null);
} catch (Exception e) {}
程序流程继续......这是一个解决方案。
如何取消选择ActionBar中的所有选项卡
你没有。始终选中一个选项卡。
我知道我现在正在犯罪......但我找到了一个有效的解决方案。所以,以防其他人试图这样做,你走了。
您只需创建一个虚拟选项卡,并且永远不会将其添加到操作栏。选择虚拟选项卡,操作栏中的选项卡均未选中。如果你调试onTabSelected
的ActionBar.TabListener
等方法,假人的索引值为-1。
注意:这假设您在ActionBar.TabListener
中实现Activity
。
String tabTitles[] = {"A", "B"};
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (String tabName : tabTitles) {
actionBar.addTab(actionBar.newTab().setText(tabName).setTabListener(this), false);
}
ActionBar.Tab dummyTab = actionBar.newTab().setText("Dummy").setTabListener(this);
try{
actionBar.selectTab(dummnyTab);
}catch(Exception e){}
适合我的作品。
我有一个与TabLayout类似的问题。作为解决方法,我首先将选定的选项卡指示器颜色设置为透明:
int colorTransparent = getColor(R.color.transparent);
tabLayout.setSelectedTabIndicatorColor(colorTransparent);
并隐藏了ViewPager /内容 - 所以它基本上看起来没有被选中,没有当前页面可见。
然后,当用户按下按钮时,我将选定的标签指示颜色更改回R.color.accent
并在ViewPager /内容中淡化。