使用pagerslidingtablayout设置选项卡文本颜色

时间:2015-09-15 21:31:47

标签: java android pagerslidingtabstrip

我正在尝试使用pagerslidingtabStrip实现tablayout。我想设置所选标签和未选定标签的颜色。最近有一个属性被添加到库" pstsactivateTextColor"但是在构建时遇到错误:

  

找不到属性&p; pstsTabTextColor'

的资源标识符

我使用" astuetz / PagerSlidingTabStrip"库。

1 个答案:

答案 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”的末尾调用此函数。