2010-03-08 9 views
12

que tienen la siguiente distribución definido para una de mis actividades:¿Cómo hago que las Vistas llenen todo el ancho de sus elementos principales en mi aplicación de Android?

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" android:layout_width="fill_parent"> 
     <EditText android:text="Resource Name" android:id="@+id/ResourceName" android:lines="1" android:isScrollContainer="false"></EditText> 
    </TableRow> 
    <TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" android:layout_width="fill_parent"> 
     <Button android:id="@+id/Tile" android:text="Tile"></Button> 
    </TableRow> 
</TableLayout> 

El diseño de renders casi correctamente, el único problema es que mi cuadro de texto y mi botón no están ocupando todo el ancho de sus respectivas filas.

He intentado especificar fill_parent para las propiedades de ancho del diseño, pero en vano, solo ocupan aproximadamente la mitad de la pantalla.

La documentación en general para Android hasta ahora ha sido excelente, ¡pero hay algunos escenarios como este donde golpeé una pared invisible! ¡Gracias por toda la ayuda!

Respuesta

9

probar este en la definición de su TableRow:

<TableLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:stretchColumns="1"> 
+1

Parece que el índice de columnas comienza en 0, pero sí, ¡esto es todo! Disculpas, me gustaría poder elegir dos respuestas correctas;) –

6

Uso android:layout_width="match_parent" en sus puntos de vista TableRow.

Ahora existen varias maneras en su TableLayout Seting el parámetro android:stretchColumns a:

Value "*" vistas tendrán misma anchura y llenará la fila ocupando el mismo espacio

Value "0" or other integer -> Primera o elemento correspondiente a la un entero en una fila llenará la fila. La otra vista tendrá anchura en una misma forma de wrap_content

ejemplo con un TableLayout de 3 TableRow con 2 vistas cada uno:

Sin establecer android:stretchColumns:

[|TextView|EditText|   ] 
[|TextView|EditText|   ] 
[|TextView|EditText|   ] 

androide: stretchColumns = "*"

[| TextView | EditText |] 
[| TextView | EditText |] 
[| TextView | EditText |] 

androide: stretchColumns = "0"

[| TextView  |EditText|] 
[| TextView  |EditText|] 
[| TextView  |EditText|] 

android: stretchColumns = "1"

[|TextView|  EditText |] 
[|TextView|  EditText |] 
[|TextView|  EditText |] 
Cuestiones relacionadas