0

Я использую PagerTitleStrip для прокрутки фрагмента, мне нужно сделать точку для выбранного элемента или выделенного заголовка. Мой XML код:Как сделать точку для выделенного заголовка в PagerTitleStrip в android

<android.support.v4.view.PagerTitleStrip 
      android:id="@+id/pager_title_strip" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:background="#fff" 
      android:paddingBottom="6dp" 
      android:paddingTop="6dp" 
      android:textColor="@color/blueColorSwipeText" /> 

мне также нужно изменить выделенный цвет заголовка. Пожалуйста, помогите мне. Thanks Предложения оценены.

+0

Что вы пробовали, и какие конкретные проблемы вы столкнулись? Удалось ли вам создать вилку 'PagerTitleStrip', например? – CommonsWare

+1

http://stackoverflow.com/questions/10008309/android-implement-a-page-counter-like-the-one-on-the-home-screen Попробуйте это –

+0

Вы хотите заменить индикаторную панель точкой , это правильно ? – vovahost

ответ

1

Использовать атрибут textColor; Создайте новый стиль в Рез/значения/styles.xml:

<style name="Pager"> 
    <item name="android:textColor">#4DB849</item> 
    <item name="android:indicatorColor">#E95044</item> 
</style> 

Вы получите зеленый заголовок и красный индикатор.

Вы можете увидеть ViewPagerIndicator

Для изменения индикатора вы должны изменить метод OnDraw (холст холст).
Вот исходный код PagerTabStrip.java.

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

Вы должны изменить эту строку:

canvas.drawRect(left, top, right, bottom, mTabPaint); 

тест, если вы получите точку при замене с:

canvas.drawCircle(left, top, 15, mTabPaint); 

Для рисования пользовательских представлений проверить Android документации.

Custom Drawing

+0

Я хочу точку вместо индикатора. –