Pregunta

Tengo un relativeLayout definido en un archivo de diseño XML llamado 'myView.xml' que contiene una serie de subvistas (TextViews, ImageViews, etc.).

Quiero crear un objeto/clase de vista llamado 'myView' que represente este relativeLayayOut, que me permite cambiar las propiedades de las subvistas utilizando métodos que definiré y tal que pueda agregar (y recuperar) instancias de myView mediante medidinismo a (de) Otras vistas.

¿Cuál es la mejor manera de hacer esto? Por el momento, estoy creando una clase llamada 'myView' que extiende framelayout y al anular los tres constructores de Framelayout llamo los siguientes métodos ...

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

... Esto funciona, pero significa que todas mis relativeLayouts están contenidas dentro de Framelayouts y, por lo tanto, tengo una capa adicional (innecesaria) en mi jerarquía de visión ...

¿Fue útil?

Solución

Hago casi lo mismo. Pero envío 'esto' en lugar de nulo y no agrego esa vista a la vista de los padres.

LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.myview, this);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top