如何更改滑动选项卡布局的文本颜色?

我制作了一个使用ActionBarCompat的应用程序

我使用SlideingTabLayout类创建了选项卡。

类是这样的:

滑动选项卡布局.java

但是我无法更改选项卡的颜色...

我的视图页码片段是这样的:

<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/Navigation-Drawer-ViewPager-ActionBarCompat

如何更改选项卡文本的文本颜色?

谢谢!!!


答案 1

1)首先在res(/res/color)
下创建颜色文件夹 2)创建xml文件选择器.xml/res/color文件夹下

<?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)然后在sliackTabLayout中的populationeTabStrip()方法中放置这个

tabTitleView.setTextColor(getResources().getColorStateList(R.color.selector));

现在你有一个选择器,你可以改变任何你想要的事件的文本的颜色

如果这不起作用,请添加以下代码行。
a) 在填充TabStrip() 方法末尾添加此

if (i == mViewPager.getCurrentItem()) {
    tabView.setSelected(true);
}

和 b) 将 onPageSelected() 方法更改为 this

    @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);
        }
    }    

答案 2

打开您的文件(Google IO中的默认文件)并找到该函数,然后在此代码之后SlidingTabLayout.javapopulateTabStrip()

mTabStrip.addView(tabView);
        if (i == mViewPager.getCurrentItem()) {
            tabView.setSelected(true);
        }

添加以下行:

int color = ContextCompat.getColor(tabView.getContext(), R.color.grey);
tabTitleView.setTextColor(color);

替换为您喜欢的颜色。R.color.grey


推荐