自定义TextView在5.0及更高版本的设备中不可见

时间:2018-07-10 17:49:58

标签: android android-layout textview

以下是我自定义的TextView类:

public class MontTextView extends  android.support.v7.widget.AppCompatTextView{  
public MontTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
} 
public MontTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
} 
public MontTextView(Context context) {
    super(context);
    init();
} 
public void init() {
    Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/Montserrat-Regular.ttf");
    setTypeface(tf ,1); 
    }
}

在XML中,我像这样使用它:

<com.minimalist.gorakh.customviews.MontTextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="@dimen/_20sdp"
    android:text="Text"
    android:textColor="#fff"
    android:textSize="@dimen/_25ssp"
    app:layout_constraintBottom_toBottomOf="@+id/betaView"
    app:layout_constraintStart_toStartOf="@+id/betaView"
    app:layout_constraintTop_toTopOf="@+id/betaView" />

这可用于棒棒糖(v-19)之前的版本,如下所示: pre-lollipop

在棉花糖模拟器上: enter image description here

我从上一个项目复制了自定义TextView代码,但在这里我做错了什么。

1 个答案:

答案 0 :(得分:0)

尝试一下:

import android.widget.*;
import android.util.*;
import android.content.*;
import android.graphics.*;

public class MontTextView extends TextView{  


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

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

    public MontTextView (Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        setTypeface(Typeface.createFromAsset(getContext().getAssets(),  "fonts/Montserrat-Regular.ttf"));
    }

}