Hacer células de igual anchura y altura para llenar la tabla

Estoy tratando de aprender a usar diseños de tablas en android, este es mi código:

<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 3 columns --> <TableRow android:id="@+id/tableRow3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dip" > <TextView android:id="@+id/textView2" android:text="Column 1" /> <Button android:id="@+id/button2" android:text="Column 2" /> <Button android:id="@+id/button3" android:text="Column 3" /> </TableRow> </TableLayout> 

Y este es el resultado:

introduzca la descripción de la imagen aquí

¿Cómo puedo hacer el TableRow para ajustar el ancho del TableLayout y la altura a la altura de TableLayout ? En palabras simples, me gustaría tener todas las columnas con el mismo ancho y filas con la misma altura llenar el TableLayout , ¿es posible? ¿Cómo?

3 Solutions collect form web for “Hacer células de igual anchura y altura para llenar la tabla”

Tienes que jugar con los valores de weight . El xml para dos filas parecería esto.

 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tableLayout1" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- 3 columns --> <TableRow android:id="@+id/tableRow3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="5dip" > <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Column 1" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Column 2" /> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Column 3" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="5dip" > <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Column 1" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Column 2" /> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Column 3" /> </TableRow> </TableLayout> 

Y este es el resultado.-

introduzca la descripción de la imagen aquí


Como una nota lateral, observe que fill_parent está obsoleto, debería usar match_parent en match_parent lugar.

La forma más rápida sería utilizar layout_weight con los objetos de la fila de la tabla. Aquí es cómo su xml debe mirar después de especificarlo.

 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 3 columns --> <TableRow android:id="@+id/tableRow3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dip" > <TextView android:id="@+id/textView2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Column 1" /> <Button android:id="@+id/button2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Column 2" /> <Button android:id="@+id/button3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Column 3" /> </TableRow> </TableLayout> 

Cuando se utiliza peso, se desea establecer la layout_width de diseño en 0dp para que pueda sobreescribir el valor real. Esta división le dará a cada vista un 1/3 del TableRow. Juega con el valor de peso hasta que tienes algo que te gusta.

agrega android:layout_weight="0.3" al interior del niño TableRow intenta reemplazar tu layout xml por este

espero esto lo que buscas

 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 3 columns --> <TableRow android:id="@+id/tableRow3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:padding="5dip" > <TextView android:id="@+id/textView2" android:layout_weight="0.3" android:text="Column 1" /> <Button android:id="@+id/button2" android:layout_weight="0.3" android:text="Column 2" /> <Button android:id="@+id/button3" android:layout_weight="0.3" android:text="Column 3" /> </TableRow> </TableLayout> 
  • Alineación de la disposición de la tabla de Android
  • Disposición de respuesta de Android
  • Borde de elementos de la fila de tabla en android
  • Datos dinámicamente de datos de tabla de Android
  • Cursor no es visible en EditText cuando se agrega dinámicamente la vista
  • Crear un diseño chatView en android
  • Cómo inflar vista desde XML en Android?
  • ¿Es posible especificar la altura de TableRow?
  • Cómo crear una tabla en Android con varias columnas?
  • ¿Qué hace exactamente android: layout_column?
  • Problemas de la suma de peso de TableLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.