首先,在res目录下创建一个名为color的文件夹 (/res/color)
其次,在/res/color文件夹下创建一个名为selector.xml的xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="#504f4f" />
</selector>
3)然后在SlidingTabLayout中的populateTabStrip()方法中添加以下内容:
tabTitleView.setTextColor(getResources().getColorStateList(R.color.selector))
现在您拥有了一个选择器,您可以在任何想要的事件上更改文本的颜色。
如果这不起作用,请添加以下代码行。
a)在populateTabStrip()方法的末尾添加此内容
if (i == mViewPager.getCurrentItem()) {
tabView.setSelected(true);
}
并且b) 将onPageSelected() 方法更改为以下内容
@Override
public void onPageSelected(int position) {
if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
mTabStrip.onViewPagerPageChanged(position, 0f);
scrollToTab(position, 0);
}
for (int i = 0; i < mTabStrip.getChildCount(); i++) {
mTabStrip.getChildAt(i).setSelected(position == i);
}
if (mViewPagerPageChangeListener != null) {
mViewPagerPageChangeListener.onPageSelected(position);
}
}
setTextColor()
方法的代码中的同一位置,你可以调用tabTitleView.setBackground(getResources().getDrawable(R.drawable.selector_tab));
。 - Bolic