我在我的应用程序中使用带有选项卡的 ActionBar 以及老式菜单。当您进入与菜单项关联的片段时,我想保持 ActionBar 可见,但取消选择所有选项卡。
我试过:
_actionBar.selectTab(null);
但这会引发异常。
PS 我实际上是在使用 ActionBarSherlock 来实现兼容性,如果这有所作为的话。
我在我的应用程序中使用带有选项卡的 ActionBar 以及老式菜单。当您进入与菜单项关联的片段时,我想保持 ActionBar 可见,但取消选择所有选项卡。
我试过:
_actionBar.selectTab(null);
但这会引发异常。
PS 我实际上是在使用 ActionBarSherlock 来实现兼容性,如果这有所作为的话。
然后抓住它:)
我刚刚对此进行了测试,它有效,选项卡下的蓝色下划线消失了,这正是我想要做的。
try {
ActionBar actionbar = (ActionBar) getActionBar();
actionbar.selectTab(null);
} catch (Exception e) {}
程序流程继续进行......这是一种解决方法。
如何取消选择 ActionBar 中的所有选项卡
你没有。始终选择选项卡。
您无法取消选择选项卡,您认为会发生什么?应始终选择选项卡之一。
想想你的用户。他们不会期望这种行为。
我知道我现在正在做死灵术……但我找到了一个可行的解决方案。因此,以防万一其他人试图这样做,给你。
您只需创建一个虚拟选项卡,而不会将其添加到操作栏。选择虚拟选项卡,操作栏中的选项卡都未选中。如果您调试onTabSelected
.ActionBar.TabListener
注意:这假设您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){}
非常适合我。
保存选定和未选定文本颜色的默认颜色状态列表的副本
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)
所以这个的一般要点是设置相应的颜色,这样看起来标签没有被选中。
我对TabLayout有类似的问题。作为一种解决方法,我首先将选定的选项卡指示器颜色设置为透明:
int colorTransparent = getColor(R.color.transparent);
tabLayout.setSelectedTabIndicatorColor(colorTransparent);
并隐藏了 ViewPager/content - 所以它基本上看起来像没有选择任何内容,没有当前页面可见。
然后,当用户按下按钮时,我将选定的选项卡指示器颜色改回R.color.accent
并淡入 ViewPager/content。