从xml布局文件创建自定义View类的最佳方法?
问题描述:
我有一个名为'myview.xml'的xml布局文件中定义的RelativeLayout,其中包含许多子视图(TextViews,ImageViews等)。从xml布局文件创建自定义View类的最佳方法?
我想创建一个名为'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,因此我在视图层次结构中有一个额外的(不必要的)图层...
答
我做的事情几乎是一样的。但我发送'this'而不是null,并且不要将该视图添加到父视图。
LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.myview, this);
感谢您对Mad Mik的回应。如果我正确理解了'inflate'方法,它仍然意味着我在视图层次结构中有一个额外的图层,但很高兴知道我并不孤单,因为我正在做这件事,而且您的方法只有一个方法调用,所以去那! :) – 2012-01-16 14:47:45
是的。你仍然以儿童的膨胀观点结束。 – madmik3 2012-01-16 15:18:12