在我的应用中,我使用以下代码根据用户所在的当前标签来更改Tabs
中TabLayout
的颜色:
ViewGroup tabStrip = (ViewGroup) tabs.getChildAt(0);
for (int i = 1; i < 5; i++) {
View tabView = tabStrip.getChildAt(i);
ViewCompat.setBackground(tabView, getDrawable(R.drawable.tab_back));
}
现在,以编程方式更改标签的颜色后,我想使用以下代码将选定的标签指示器颜色设置为黑色:
tabs.setSelectedTabIndicatorColor(Color.BLACK);
问题是,当我使用ViewCompat
以编程方式更改Tab
颜色时,以上代码行不起作用。如果仅使用上述代码行而不更改选项卡的颜色,那么它可以工作,但是当我将背景设置为可绘制对象时,它就没有作用。
结果是所选Tab
没有标签指示符。
有人知道为什么setSelectedTabIndicatorColor()
方法仅在不以编程方式设置背景时起作用吗?如何同时实现更改Tab
颜色和IndicatorColor
的效果吗?< / strong>