gpt4 book ai didi

android - 自定义 View 未显示在图形布局中

转载 作者:行者123 更新时间:2023-11-29 17:50:29 26 4
gpt4 key购买 nike

我创建了自定义按钮、TextView 和 ImageView。这些都不能正确出现在任何 XML 的图形布局中。它没有显示带有自定义字体的按钮或文本,而是显示一个巨大的灰色框,其中包含我正在调用的自定义类的名称。如何让这些显示在预览中?

public class FontTextView extends TextView {

public static Typeface FONT_NAME;

public FontTextView(Context context) {
super(context);
if(FONT_NAME == null) FONT_NAME = Typeface.createFromAsset(context.getAssets(), "font.ttf");
this.setTypeface(FONT_NAME);
}
public FontTextView(Context context, AttributeSet attrs) {
super(context, attrs);
if(FONT_NAME == null) FONT_NAME = Typeface.createFromAsset(context.getAssets(), "font.ttf");
this.setTypeface(FONT_NAME);
}
public FontTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if(FONT_NAME == null) FONT_NAME = Typeface.createFromAsset(context.getAssets(), "font.ttf");
this.setTypeface(FONT_NAME);
}

<com.example.gesturetest.FontTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text placeholder" />

最佳答案

您可以在自定义 View 中执行此操作:

if(!isInEditMode()){
// Your custom code that is not letting the Visual Editor draw properly
// i.e. thread spawning or other things in the constructor
}

Reference

在自定义 View 的构造函数中执行此操作

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

if (!isInEditMode()) {
createTypeface(context, attrs); //whatever added functionality you are trying to add to Widget, call that inside this condition.
}

}

关于android - 自定义 View 未显示在图形布局中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23230300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com