Cómo inflar una vista con un diseño
Tengo un diseño definido en XML. Contiene también:
<RelativeLayout
android:id="@+id/item"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
Me gustaría inflar este RelativeView con otro archivo de diseño XML. Puedo usar diferentes diseños dependiendo de la situación. ¿Cómo debería hacerlo? Estaba probando diferentes variaciones de
RelativeLayout item = (RelativeLayout) findViewById(R.id.item);
item.inflate(...)
Pero ninguno de ellos funcionó bien.
No estoy seguro de haber seguido su pregunta: ¿está intentando adjuntar una vista secundaria a RelativeLayout? Si es así, desea hacer algo como:
RelativeLayout item = (RelativeLayout)findViewById(R.id.item);
View child = getLayoutInflater().inflate(R.layout.child, null);
item.addView(child);
Inflas un recurso XML. Consulte el documento LayoutInflater .
Si su diseño está en mylayout.xml , haría algo como:
View view;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.mylayout, null);
RelativeLayout item = (RelativeLayout) view.findViewById(R.id.item);
Aunque la respuesta es tardía, pero me gustaría agregar esa forma de obtener esto.
LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.mylayout, item );
¿Dónde item
está el diseño principal donde desea agregar un diseño secundario?
Es útil agregar a esto, aunque es una publicación antigua, que si la vista secundaria que se está inflando desde xml se va a agregar a un diseño de grupo de vistas, debe llamar a inflate con una pista de a qué tipo de grupo de vistas se dirige. para ser agregado. Como:
View child = getLayoutInflater().inflate(R.layout.child, item, false);
El método inflate está bastante sobrecargado y describe esta parte del uso en los documentos. Tuve un problema en el que una vista única inflada desde xml no se alineaba correctamente en el elemento principal hasta que hice este tipo de cambio.