Android 页面标题背景色

Android 页面标题背景色,android,colors,background,Android,Colors,Background,我在PagerTabStrip中更改了背景色,但选项卡标题的背景为白色 <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/pager" android:layout_width="match_parent" android:la

我在PagerTabStrip中更改了背景色,但选项卡标题的背景为白色

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<android.support.v4.view.PagerTabStrip
    android:id="@+id/pager_tab_strip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:background="#c9c9c9"
    android:padding="4dp"
    android:textColor="#000000"
    />


我在哪里更改它?

您可以用代码进行更改

这里有一篇关于页面样式的帖子

更新: 查看PagerTabStrip的源代码,这似乎不可能。onDraw()方法调用超类,超类绘制文本,然后PagerTabStrip在视图底部绘制指示器。若要更改当前选定文本的背景,需要在绘制文本之前以全高绘制指示器

这将需要一个自定义类,可能使用PagerTabStrip及其超类中的代码,并根据需要自定义onDraw方法

PagerTabStrip中onDraw()的代码如下所示

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    final int height = getHeight();
    final int bottom = height;
    final int left = mCurrText.getLeft() - mTabPadding;
    final int right = mCurrText.getRight() + mTabPadding;
    final int top = bottom - mIndicatorHeight;

    mTabPaint.setColor(mTabAlpha << 24 | (mIndicatorColor & 0xFFFFFF));
    canvas.drawRect(left, top, right, bottom, mTabPaint);

    if (mDrawFullUnderline) {
        mTabPaint.setColor(0xFF << 24 | (mIndicatorColor & 0xFFFFFF));
        canvas.drawRect(getPaddingLeft(), height - mFullUnderlineHeight,
                getWidth() - getPaddingRight(), height, mTabPaint);
    }
}
@覆盖
受保护的void onDraw(画布){
super.onDraw(帆布);
最终整数高度=getHeight();
最终内底=高度;
final int left=mCurrText.getLeft();
final int right=mCurrText.getRight();
最终int top=底部-MINDICATOR高度;

mTabPaint.setColor(mTabAlpha只需在pager选项卡strip java类中将ImageButton背景设置为黑色即可。

尝试插入此XML代码:


android:textColor=“#”

如果资源文件在res/values/colors.xml中不存在(用于颜色),请创建一个具有所需值的颜色的资源文件

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <color name="tabstrip_bg">#ff6d9850</color>
</resources>

#ff6d9850
在布局文件中(分别持有ViewPager和TabStrip),修改引用上述颜色的android:background参数,如下所示

<android.support.v4.view.ViewPager
    android:id="@+id/pager_charts"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.PagerTabStrip
        android:id="@+id/pager_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="@color/tabstrip_bg" />
</android.support.v4.view.ViewPager>


tab指示符颜色只更改标题下的行,而不更改标题的背景。我更新了答案,我认为setDrawFullUnderline(true)可以满足您的需要。在PagerAbstrip类中搜索它。您是否有幸修复此问题?