正在 Android Studio 中初始化自定义视图:类型为 xml 的预期资源

Initializing custom view in Android Studio: Expected resource of type xml

我有一个名为 IconView 的自定义视图,它具有以下初始化构造函数:

public class IconView extends RelativeLayout implements Checkable {

    ...

    public IconView(Context context, AttributeSet attrs, boolean useDefaultImage) {
        super(context, attrs);
        inflateLayout(context);

    ...

为了从 XML 初始化 AttributeSet 实例以构建视图,我使用 getResources().getXml(R.layout.icon_view), false);。 这编译成功并正确运行。但是,Android studio 突出显示代码并向我显示此错误:

错误的详细描述在这里:

类型为 xml 的预期资源较少... (Ctrl+F1) 报告两类问题:

问题:

虽然代码有效,但我不知道如何重写它,以便 Android Studio 中的错误消失。这个错误在视觉上很烦人,那么我该如何摆脱它呢?

Resources#getXml(int id) 用于获取 xml 类型的资源,它位于 xml 资源文件夹中。另一方面,您在此处传递 R.layout.icon_view,即 layout 资源。
这里使用getResources().getLayout(R.layout.icon_view),错误就会消失。

P.S.: Resources#getLayout() 上的文档说明如下:

This function is really a simple wrapper for calling getXml(int) with a layout resource.

看来这是某种与 lint 相关的问题。无论哪种方式,getLayout() 都不会导致此错误。