如何更改SlidingTabLayout的文本颜色?
问题内容:
我制作了一个使用 ActionBarCompat* 的应用程序 *
我使用 SlidingTabLayout 类创建了选项卡。
该类是这样的:
但我无法更改标签的颜色…
我的viewpager片段是这样的:
<swmovil.fyb.SlidingTabLayout
android:id="@+id/mTabs"
android:layout_width="match_parent"
android:layout_height="48dip" />
<android.support.v4.view.ViewPager
android:id="@+id/mPager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@color/white" />
该应用程序运行良好,但我无法更改标签的 颜色文本 …
看到以下示例后,我制作了该应用程序:
rudsonlive /导航抽屉-ViewPager-ActionBarCompat
如何更改标签文本的文本颜色?
谢谢 !!!
问题答案:
1)首先在res(/ res / color)下创建color文件夹
2)在/ res / color文件夹下创建xml文件selector.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);
}
}