layout_inflater_service inflater getlayoutinflater android android-inflate

android - getlayoutinflater - layout_inflater_service



¿Qué significa inflar una vista desde un archivo xml? (5)

"Inflar" una vista significa tomar el diseño XML y analizarlo para crear la vista y los objetos del grupo de vista a partir de los elementos y sus atributos especificados en, y luego agregar la jerarquía de esas vistas y grupos de vista al Grupo de vista principal. Cuando llama a setContentView (), adjunta las vistas que crea al leer el XML a la actividad. También puede usar LayoutInflater para agregar vistas a otro ViewGroup, lo que puede ser una herramienta útil en muchas circunstancias.

Soy nuevo en el desarrollo de Android y sigo encontrando referencias a inflar vistas desde un archivo XML de diseño. Busqué en Google y busqué en la guía de desarrollo, pero aún no pude entender lo que significa. Si alguien pudiera dar un ejemplo muy simple, sería muy apreciado.


Creo que aquí "inflar una vista" significa obtener el archivo layout.xml dibujando una vista especificada en ese archivo xml y POPULAR (= inflar) el grupo de vista principal con la vista creada.


Cuando escribe un diseño XML, el sistema operativo Android lo inflará, lo que básicamente significa que se procesará creando un objeto de vista en la memoria. Llamemos a eso inflación implícita (el sistema operativo inflará la vista para usted). Por ejemplo:

class Name extends Activity{ public void onCreate(){ // the OS will inflate the your_layout.xml // file and use it for this activity setContentView(R.layout.your_layout); } }

También puede inflar las vistas explícitamente usando el LayoutInflater . En ese caso tienes que:

  1. Obtener una instancia del LayoutInflater
  2. Especifique el XML para inflar
  3. Utilice la View devuelta

Por ejemplo:

LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1 View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3


Debido a que convertimos UI en XML, pero los objetos de vista es lo que mostramos, de modo que de alguna manera necesitamos convertir xml en objetos de vista, por lo que inflar significa que estamos convirtiendo xml en objetos de vista para que se pueda mostrar, para esto necesitamos un servicio llamado inflador de diseño. y dale un xml y será convertido para ti.


Inflar es el proceso de agregar una vista (.xml) a la actividad en tiempo de ejecución. Cuando creamos un listView, inflamos dinámicamente cada elemento. Si queremos crear un ViewGroup con múltiples vistas como botones y vista de texto. Podemos crearlo como

Button but = new Button(); but.setText ="button text"; but.background ... but.leftDrawable.. and so on... TextView txt = new TextView(); txt.setText ="button text"; txt.background ... and so on...

Luego tenemos que crear un diseño donde podamos agregar vistas arriba.

RelativeLayout rel = new RelativeLayout(); rel.addView(but);

Y ahora si queremos agregar un botón en la esquina derecha y una vista de texto en la parte inferior. Tenemos que hacer mucho trabajo. Primero con las propiedades de vista y, segundo, tenemos que aplicar múltiples restricciones. Es un trabajo duro y lento.

Android nos facilita crear un .xml simple y diseñar su estilo y atributos en xml, y simplemente inflarlo donde sea que lo necesitemos sin la confusión de establecer restricciones y establecerlo programáticamente.

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true); //now add menuLayout to wherever you want to add like (RelativeLayout)findViewById(R.id.relative).addView(menuLayout);