我在我的应用程序中使用带有标签的ActionBar,以及旧式菜单。当您进入与菜单项关联的片段时,我想保持ActionBar可见,但取消选择所有选项卡。
我试过了:
_actionBar.selectTab(null);
但这会引发异常。
PS我实际上使用ActionBarSherlock来实现兼容性,如果这有所不同。
答案 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 /内容中淡出。