首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PagerTabStrip标题背景颜色

PagerTabStrip标题背景颜色
EN

Stack Overflow用户
提问于 2013-07-04 20:20:41
回答 4查看 3.3K关注 0票数 5

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

代码语言:javascript
复制
<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"
    />

我该在哪里更改它?

EN

回答 4

Stack Overflow用户

发布于 2014-01-02 00:36:53

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

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>

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

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

代码语言:javascript
复制
<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>
票数 2
EN

Stack Overflow用户

发布于 2013-12-29 22:02:43

尝试插入此XML代码:

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

票数 1
EN

Stack Overflow用户

发布于 2013-07-04 20:28:34

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

这里有一篇关于设计PagerTabStrip样式的文章。

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

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

这将需要一个定制类,可能使用来自PagerTabStrip的代码和它的超类,并根据需要定制onDraw方法。

来自PagerTabStrip的onDraw()代码如下。

代码语言:javascript
复制
@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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17470194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档