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

问题描述 投票:2回答:5

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

我试过了:

_actionBar.selectTab(null);

但这引发了一个例外。

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

android android-actionbar actionbarsherlock
5个回答
2
投票

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

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


7
投票

抓住它:)

我只测试了它,它工作,选项卡下面的蓝色下划线消失了,这正是我想要做的。

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

程序流程继续......这是一个解决方案。


1
投票

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

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


1
投票

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

您只需创建一个虚拟选项卡,并且永远不会将其添加到操作栏。选择虚拟选项卡,操作栏中的选项卡均未选中。如果你调试onTabSelectedActionBar.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){}

适合我的作品。


0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.