5

我更改了 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"
    />

我在哪里改变它?

4

4 回答 4

2

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

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

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

在您的布局文件(分别保存 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>
于 2014-01-01T16:36:52.560 回答
1

尝试插入此XML代码:

android:textColor="#<COLOR-CODE>"

于 2013-12-29T14:02:42.530 回答
0

您可以在代码中使用PagerTabStrip.setDrawFullUnderline(boolean drawFull)在代码中执行此操作。

这是一篇关于设置 PagerTabStrip 样式的帖子。

http://blog.stylingandroid.com/archives/1378

更新: 查看 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);
    }
}
于 2013-07-04T12:28:33.727 回答
-4

只需在寻呼机选项卡条 java 类中将 ImageButton 背景设置为黑色。

于 2013-07-04T12:55:44.810 回答