2011-01-05 16 views
6

Tengo LinearLayout dentro de TableRow. El LinearLayout iniciarse en el código, de esta manera:match_parent no llena al padre!

LinearLayout mainRowLayout = new LinearLayout(this); 
mainRowLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
TableRow tr = new TableRow(this); 
tr.addView(mainRowLayout); 

El problema es que el LinearLayout no llena la matriz (que es el TableRow). Las imágenes adjuntas ilustran el problema, como se muestra en el hirarchyViewer de Android (los rectángulos verdes son mis marcas).

"LinearLayout image"

Gracias.

Respuesta

13

Cuando se crean diseños mediante programación, debe proporcionar al contenedor principal las instrucciones de diseño para el elemento secundario.

// child element 
LinearLayout mainRowLayout = new LinearLayout(this); 

// parent element 
TableRow tr = new TableRow(this); 

// parent element's instructions (layout params for main row) 
TableRow.LayoutParams lopForMainRow = new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 

tr.addView(mainRowLayout, lopForMainRow); 

Pruébalo:]

Cuestiones relacionadas