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

时间:2012-10-14 02:15:47

标签: android android-actionbar actionbarsherlock

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

我试过了:

_actionBar.selectTab(null);

但这会引发异常。

PS我实际上使用ActionBarSherlock来实现兼容性,如果这有所不同。

6 个答案:

答案 0 :(得分:7)

然后赶上它:)

我刚试过这个,它有效,标签下方的蓝色下划线消失了,这正是我想要做的。

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

程序流程继续......它是一种解决方法。

答案 1 :(得分:2)

您无法取消选择标签,您认为会发生什么?应始终选择其中一个选项卡。

考虑一下您的用户。他们不会期待这种行为。

答案 2 :(得分:1)

  

如何取消选择ActionBar中的所有标签

你没有。始终选中一个选项卡。

答案 3 :(得分:1)

我知道我现在正在犯罪......但我找到了一个有效的解决方案。所以,以防其他人试图这样做,你走了。

您只需创建一个虚拟标签,但不要将其添加到操作栏。选择虚拟选项卡,操作栏中的选项卡均未选中。如果您调试onTabSelected的{​​{1}}等方法,则假人的索引为-1。

注意:这假设您在ActionBar.TabListener中实施ActionBar.TabListener

Activity

适合我的作品。

答案 4 :(得分: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)

因此,一般的主旨是设置相应的颜色,以便看起来未选择选项卡。

答案 5 :(得分:0)

我在 TabLayout 上遇到了类似的问题。解决方法是,我首先将选定的标签指示符颜色设置为透明:

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

并隐藏ViewPager /内容-基本上看起来像什么都没选择,没有当前页面可见。

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