Как установить 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
и установите его шрифт.