我正在尝试使用pagerslidingtabStrip实现tablayout。我想设置所选标签和未选定标签的颜色。最近有一个属性被添加到库" pstsactivateTextColor"但是在构建时遇到错误:
找不到属性&p; pstsTabTextColor'
的资源标识符
我使用" astuetz / PagerSlidingTabStrip"库。
答案 0 :(得分:0)
根据此article,如果您自己添加attr,则可以设置所选标签和未选定标签的颜色:
<attr name="pstsTabSelectedTextColor" format="color" />
<attr name="pstsTabUnselectedTextColor" format="color" />
在“PagerSlidingTabStrip”文件中,添加:
private static final int DEFAULT_TAB_TEXT_COLOR = 0xFF666666;
private int tabSelectedTextColor;
private int tabUnselectedTextColor;
删除“tabTextColor”字段以及与其相关的任何内容。 在CTOR中,添加:
tabSelectedTextColor = a.getColor(R.styleable.PagerSlidingTabStrip_pstsTabSelectedTextColor, DEFAULT_TAB_TEXT_COLOR);
tabUnselectedTextColor = a.getColor(R.styleable.PagerSlidingTabStrip_pstsTabUnselectedTextColor, DEFAULT_TAB_TEXT_COLOR);
在代码中,为我编写的新字段添加setter和getter。添加此方法:
private void updateTabsTextColors() {
for (int i = 0; i < tabCount; i++) {
View v = tabsContainer.getChildAt(i);
if (v instanceof TextView) {
TextView tab = (TextView) v;
if (pager.getCurrentItem() == i)
tab.setTextColor(tabSelectedTextColor);
else tab.setTextColor(tabUnselectedTextColor);
}
}
}
在“PageListener”类的“onPageSelected”内,在新的setter中以及“updateTabStyles”的末尾调用此函数。