2011-01-19 22 views
10

Tengo dos diseños: main.xml y buttonpanel.xml. En buttonpanel.xml, en linearlayout principal configuro la gravedad en la parte inferior. Ahora estoy tratando de agregar el diseño del panel de botones usando el siguiente código.¿Cómo usar layoutinflator para agregar vistas en tiempo de ejecución?

setContentView(R.layout.main); 
LinearLayout layout=(LinearLayout)findViewById(R.id.mainlinearlayout); 
LayoutInflater inflater= (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View view=inflater.inflate(R.layout.buttonpanel,null); 
layout.addView(view); 

Mi problema es que el panel se añade a la parte superior, aunque me he puesto gravedad a abajo en buttonpanel.xml. Si agrego buttonpanel.xml a main.xml usando include, funciona bien.

¿Alguien me puede ayudar qué es lo que está mal con mi código?

+0

posible duplicado de [Interpretación de LayoutInflater] (http://stackoverflow.com/questions/5026926/making-sense-of-layoutinflater) –

+0

Mire esto para obtener una explicación más detallada: http://stackoverflow.com/questions/5026926/making-sense-of-layoutinflater – andig

Respuesta

17

He tenido problemas con la eliminación de los parámetros de diseño al inflar las vistas de la manera en que lo está haciendo. Si utilizo una llamada ligeramente diferente a inflate se respeten mis parámetros de diseño:

parent_view = inflater.inflate(R.layout.buttonpanel, parent); 

o en mi caso, cuando el padre no apoyaron la adición vistas a él:

view = inflater.inflate(R.layout.buttonpanel, parent, false); 

Tal vez esto va a resolver su problema también.

EDITAR: Se devuelven diferentes vistas dependiendo de los parámetros que se den. LayoutInflater

+0

como dijiste el padre no admitió la adición de vistas a it.so view = inflater.inflate (R.layout.buttonpanel, parent, false); resuelve mi problema.thankx – Hitendra

+0

+1. Me ayudó, también. – Gangnus

+0

Me ayudó también, pero tuve que llamar a parent.addView (ver); para agregar la vista al diseño –

0

puede usar el índice de vista infantil para configurarlo. Creo que lo ayudará a usted. Intente otro método para addview que incluya childindex

Cuestiones relacionadas