4

在我的应用程序中,我正在使用带有PagerTabStripViewPager,我需要为我的小部件设置自定义字体。要为 aButton或 a设置字体,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

4

2 回答 2

20

有点晚了,但这是一个解决方案。获取 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)
    }
}
于 2012-11-16T06:53:17.417 回答
1

检查PagerTabStripwith Hierarchy View(在运行应用程序时在 Eclipse 中打开 Hierarchy View 透视图)并搜索其子项。一个必须是TextView包含选项卡标题的 a。获取它TextView并设置它的字体。

于 2012-08-13T11:54:35.613 回答