我实现了自己的类,将android android.widget.Button类扩展为在所有按钮中都使用了自定义字体。
为此,我重写了方法setTypeface,如下所示:

public void setTypeface(Typeface tf, int style) {
    if (!isInEditMode()) {
        super.setTypeface(Fonts.get(style, getContext()));
    }
}


这在我的应用支持的所有版本的android上都很好用,但在棒棒糖上除外。有人知道我为此做错了吗?

最佳答案

我想通了,我忘了覆盖方法setTypeface的其他定义。所以我得到的最终工作代码是:

@Override
public void setTypeface(Typeface tf) {
    if (!isInEditMode()) {
        super.setTypeface(Fonts.get(getContext()));
    }
}

@Override
public void setTypeface(Typeface tf, int style) {
    if (!isInEditMode()) {
        super.setTypeface(Fonts.get(style, getContext()));
    }
}

09-27 02:12