我在名为'myview.xml'的xml布局文件中定义了RelativeLayout,其中包含许多子视图(TextViews,ImageViews等)。
我想创建一个名为'MyView'的View对象/类来表示这个RelativeLayout,这允许我使用我将定义的方法更改子视图的属性,以便我可以添加(和检索)实例MyView以编程方式(来自)其他视图。
最好的方法是什么?目前我正在创建一个名为'MyView'的类,它扩展了FrameLayout,并且在重写FrameLayout的三个构造函数时,我调用了以下方法......
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.myview, null);
addView(view);
...这有效,但这意味着我的所有RelativeLayouts都包含在FrameLayouts中,因此我的视图层次结构中有一个额外的(不必要的)图层...
答案 0 :(得分:2)
我做同样的事情。但我发送'this'而不是null并且不将该视图添加到父视图。
LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.myview, this);