升级支持库后,FontFamily不适用

时间:2014-12-12 14:38:40

标签: android layout

我有一个TextView:

<TextView
        android:id="@+id/digits"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="13dp"
        android:translationY="5dp"
        android:text=""
        android:textSize="128sp"
        android:textColor="@color/white"
        android:fontFamily="fonts/Roboto-Thin.ttf"
/>

在我以前的gradle文件中

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
}

一切都很棒,TextView有正确的字体和字体。

但是,当我更改支持库版本(因此我可以使用新的SwipeToRefreshLayout)时:

dependencies {
    compile 'com.android.support:support-v4:21.0.2'
}

然后我的TextView没有应用Robot Thin字体,文本是粗体。

它是如何以这种方式工作的?我认为只有Roboto-Thin存在问题,因为其他具有Roboto-Regular的TextView正常工作。任何想法的家伙?

1 个答案:

答案 0 :(得分:-2)

创建自定义TextView类

public class CustomTextView extends TextView {

public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
}

public CustomTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

public CustomTextView(Context context) {
    super(context);
    init();
}

public void init() {
    if (!isInEditMode()) {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Thin.ttf");
        setTypeface(tf, 1);
    }


}

public void setNewText(CharSequence text) {
    // code to check text for null omitted
    super.setText(text, BufferType.SPANNABLE);

}
}

在此之后,更改您的

<TextView

<CustomTextView

更好地解决此错误