2013-07-04 5 views
3

Я изменил цвет фона в PagerTabStrip, но вкладки названия имеют белый фон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" 
    /> 

, где я могу изменить его?

+0

Удалось ли вам это исправить? – dustin

ответ

0

Вы можете сделать это с кодом PagerTabStrip.setDrawFullUnderline(boolean drawFull).

Это сообщение о стилизации PagerTabStrip.

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

Обновление: Глядя на источник PagerTabStrip, он не появляется, это возможно. Метод onDraw() вызывает суперкласс, который рисует текст, а затем PagerTabStrip рисует индикатор внизу представления. Чтобы изменить фон текста, который в данный момент выбран, вам нужно будет нарисовать индикатор на полной высоте до того, как текст будет нарисован.

Для этого потребуется специальный класс, возможно, с использованием кода из PagerTabStrip и его суперкласса и настройка метода onDraw для ваших нужд.

Код для onDraw() из PagerTabStrip приведен ниже.

@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

цвет индикатора вкладки меняет строку под заголовком, а не фон заголовка –

+0

Я обновил ответ, я думаю, что setDrawFullUnderline (true) будет делать то, что вы хотите. – Flynn81

+0

Извините, игнорируйте мое обновление, это неправильно. – Flynn81

-2

только что установил фон ImageButton на черный в пейджере.

+0

какой ImageButton? –

+0

поиск в классе pagertabstrip – Priya

1

Попробуйте вставить этот XML кода:

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

1

Создать файл ресурс, если он не существует (для цветов) при Резе/значениях/colors.xml с цветом, имеющим значение, которое вы хотите ,

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

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

В файле макета (удерживая соответствующую ViewPager и TabStrip) модифицировать Android: параметр фона, который относится к выше цвета, как показано ниже.

<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> 
Смежные вопросы