Как установить TypeFace в текстовые представления PagerTabStrip

В моем приложении я использую ViewPager с PagerTabStrip, и мне нужно установить пользовательские шрифты для моих виджетов. Чтобы установить шрифт для Button или TextView Я просто расширяю класс и устанавливаю гарнитуру.

public class MyButton extends Button {

    public MyButton(Context context) {
        super(context);
        initCustomFont();
    }

    public MyButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        initCustomFont();
    }

    public MyButton(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initCustomFont();
    }

    private void initCustomFont() {
        if(!isInEditMode()) {
            Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/boton_regular.ttf");
            setTypeface(tf);
        }
    }
}

Но я не могу использовать этот метод для PagerTabStrip, Есть ли другой способ установить шрифт, который можно использовать с PagerTabStrip?

2 ответа

Решение

Немного поздно, но здесь есть одно решение. Получите дочерние представления PagerTabStrip и проверьте, является ли это экземпляром TextView. Если это так, установите гарнитуру:

for (int i = 0; i < pagerTabStrip.getChildCount(); ++i) {
    View nextChild = pagerTabStrip.getChildAt(i);
    if (nextChild instanceof TextView) {
       TextView textViewToConvert = (TextView) nextChild;
       textViewToConvert.setTypeface(PUT_TYPEFACE_HERE)
    }
}

Осмотреть PagerTabStrip с Hierarchy View (в Eclipse откройте перспективу Hierarchy View при запуске приложения) и найдите его дочерние элементы. Надо быть TextView который содержит заголовок вкладки. Взять это TextView и установите его шрифт.

Другие вопросы по тегам