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:
- ¿Cómo funciona android: shrinkColumns y android: stretchColumns?
- Cómo llenar la pantalla con cuatro botones con el diseño de la tabla?
- Diseño de tabla XML? ¿Dos filas de la misma anchura con botones de igual anchura?
- Cómo combinar fila en una celda en la disposición de la tabla en android, dinámicamente?
- TableRow no envuelve TextView
¿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?
- TableLayout con layout_width = matchparent que no coincide con el padre
- Cómo mostrar la imagen en la fila de la tabla en función del tamaño
- Cómo configurar la columna de tabla en android
- Disposición de respuesta de Android
- Agregar espacio entre columnas de un TableLayout
- Alineación de la disposición de la tabla de Android
- TableRow llenar el espacio restante
- Las filas añadidas dinámicamente en tablelayout no son visibles
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.-
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>
- ¿Por qué no puedo tomar capturas de pantalla en Android Emulator después de instalar Genymotion?
- Android – SwipeRefreshLayout importación no encontrada