2

我在我的应用程序中使用带有选项卡的 ActionBar 以及老式菜单。当您进入与菜单项关联的片段时,我想保持 ActionBar 可见,但取消选择所有选项卡。

我试过:

_actionBar.selectTab(null);

但这会引发异常。

PS 我实际上是在使用 ActionBarSherlock 来实现兼容性,如果这有所作为的话。

4

6 回答 6

8

然后抓住它:)

我刚刚对此进行了测试,它有效,选项卡下的蓝色下划线消失了,这正是我想要做的。

       try {
          ActionBar actionbar = (ActionBar) getActionBar();
          actionbar.selectTab(null);
       } catch (Exception e) {}

程序流程继续进行......这是一种解决方法。

于 2013-01-15T11:45:18.787 回答
2

如何取消选择 ActionBar 中的所有选项卡

你没有。始终选择选项卡。

于 2012-10-14T11:02:41.087 回答
2

您无法取消选择选项卡,您认为会发生什么?应始终选择选项卡之一。

想想你的用户。他们不会期望这种行为。

于 2012-10-14T11:16:27.840 回答
1

我知道我现在正在做死灵术……但我找到了一个可行的解决方案。因此,以防万一其他人试图这样做,给你。

您只需创建一个虚拟选项卡,而不会将其添加到操作栏。选择虚拟选项卡,操作栏中的选项卡都未选中。如果您调试onTabSelected.ActionBar.TabListener

注意:这假设您ActionBar.TabListenerActivity.

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){}

非常适合我。

于 2014-09-03T17:27:50.123 回答
1

保存选定和未选定文本颜色的默认颜色状态列表的副本

val tabStateTextColors = tabLayout.tabTextColors

将选项卡选定指示器设置为透明

tabLayout.setSelectedTabIndicatorColor(getColor(android.R.color.transparent))

为未选中状态设置文本颜色

tabLayout.setTabTextColors(getColor(R.color.gray),getColor(R.color.gray))

当您想恢复正常时重置颜色

tabLayout.setTabTextColors(tabStateTextColors)
tabLayout.setSelectedTabIndicatorColor(getColor(R.color.black)

所以这个的一般要点是设置相应的颜色,这样看起来标签没有被选中。

于 2020-01-30T00:31:04.583 回答
0

我对TabLayout有类似的问题。作为一种解决方法,我首先将选定的选项卡指示器颜色设置为透明:

int colorTransparent = getColor(R.color.transparent);
tabLayout.setSelectedTabIndicatorColor(colorTransparent);

并隐藏了 ViewPager/content - 所以它基本上看起来像没有选择任何内容,没有当前页面可见。

然后,当用户按下按钮时,我将选定的选项卡指示器颜色改回R.color.accent并淡入 ViewPager/content。

于 2019-03-09T22:45:18.007 回答