Android Studio 布局编辑器无法渲染自定义视图

在 Android Studio 中,布局编辑器无法在 xml 中预览自定义视图。

非常简单的例子:

public class MyCustomView extends FrameLayout {
    public MyCustomView(Context context) {
        super(context);
    }

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

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

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <com.myprojectxxx.view.MyCustomView
        android:layout_width="48dp"
        android:layout_height="48dp" />

</LinearLayout>

Android Studio 总是说,

渲染问题

找不到以下类:

  • com.myprojectxxx.view.MyCustomView (Fix Build Path, Create Class)

提示:尝试生成项目

当然,我有那门课。如果我单击“创建类”,它会抱怨同一个类已经存在。如果我重建该项目,则不会发生任何变化。

而且,是的,该项目在我的Android设备上运行良好。此外,它在Eclipse ADT中渲染得非常好。但是,在Android Studio中,它总是说“找不到类”。

Android Studio 无法预览具有自定义视图的 xml 文件?这是怎么回事?


答案 1

自定义视图组件在 IDEA 中也受支持并正确显示,但是由于 IntelliJ IDEA 使用输出目录中的类文件来呈现此类组件,因此您必须首先在项目上执行>生成项目。

enter image description here

参考


答案 2

面对同样的问题,我不得不重写三个和四个参数构造函数:

public View(Context context, AttributeSet attrs, int defStyle) public View(Context context, AttributeSet attrs, int defStyle, int defStyleRes)

然后重新生成项目。


推荐