从xml布局文件创建自定义视图类的最佳方式



我在一个名为"myview.xml"的xml布局文件中定义了一个RelativeLayout,该文件包含多个子视图(TextViews、ImageViews等)。

我想创建一个名为"MyView"的视图对象/类,该对象/类表示此RelativeLayout,它允许我使用我将定义的方法更改子视图的属性,这样我就可以以编程方式将MyView的实例添加到(和从)其他视图中。

最好的方法是什么?目前,我正在创建一个名为"MyView"的类,它扩展了FrameLayout,在重写FrameLayout的三个构造函数时,我调用了以下方法。。。

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.myview, null);
addView(view);

这是有效的,但这意味着我所有的RelativeLayout都包含在FrameLayouts中,因此我在视图层次结构中有一个额外的(不必要的)层。。。

我做了几乎相同的事情。但我发送的是"this"而不是null,并且不会将该视图添加到父视图中。

LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.myview, this);

最新更新