studio horizontal gridlayout example ejemplo dynamically columnas caracteristicas xml android views tablelayout

xml - horizontal - Botones para llenar el ancho cuando se utiliza TableLayout



tablelayout android example dynamically (4)

Tengo una tabla que tiene 2 filas cada fila que tiene 3 botones. ¿Cómo puedo hacer los botones para llenar el espacio por igual. En HTML les daría 33% de ancho.

También sabe de alguna manera que puedo crear una vista con 4 botones de imagen en una fila como un diseño de cuadrícula, similar al lanzador.


Así que al final de las publicaciones, la forma correcta de hacerlo es establecer las NumberOfTheColumns :

<tablelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="NumberOfTheColumns"/>

Puede establecer la cantidad de "pieza" horizontal que necesita. Si tienes una tabla de 3x3:

<TableLayout android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout1" android:stretchColumns="3"> <TableRow android:id="@+id/tableRow1"> <TextView android:text="@string/EventTitle" android:id="@+id/textView1" android:gravity="center_vertical" android:layout_column="0" /> <EditText android:inputType="text" android:id="@+id/editText3" android:layout_weight="2" android:layout_span="2" android:layout_column="1" /> </TableRow> <TableRow android:id="@+id/tableRow2"> <TextView android:text="@string/EventDateStart" android:id="@+id/textView1" android:gravity="center_vertical" android:layout_column="0" /> <EditText android:inputType="date" android:id="@+id/editText1" android:layout_weight="1" android:layout_column="1" android:layout_width="wrap_content" /> <EditText android:inputType="time" android:id="@+id/editText2" android:layout_weight="1" android:layout_column="2" android:layout_width="match_parent" /> </TableRow> <TableRow android:id="@+id/tableRow3"> <TextView android:text="@string/EventDateEnd" android:id="@+id/textView1" android:gravity="center_vertical" android:layout_column="0" android:layout_width="match_parent" /> <EditText android:inputType="date" android:id="@+id/editText1" android:layout_weight="1" android:layout_column="1" /> <EditText android:inputType="time" android:id="@+id/editText2" android:layout_weight="1" android:layout_column="2" /> </TableRow> <TableRow> <TextView android:text="@string/Description" android:id="@+id/textView1" android:gravity="center_vertical" android:layout_weight="3" android:layout_span="3" android:layout_column="0" android:layout_width="match_parent" /> </TableRow> <TableRow> <EditText android:inputType="textMultiLine" android:id="@+id/editText3" android:layout_height="50dp" android:layout_weight="3" android:layout_span="3" android:layout_column="0" android:layout_width="match_parent" /> </TableRow> </TableLayout>

En este ejemplo puedes ver una tabla de 5x3. Puede configurar el ancho de cada columna al establecer cuántas piezas del ancho completo de la tabla necesita ...


Establezca TableRow layout_width en fill_parent y establezca un layout_weight de 1 en cada botón.

El layout_weight funciona como un porcentaje. Si todos sus artículos obtienen el mismo número, ocupan el mismo porcentaje de espacio. Si un botón tiene un peso de 2, y otro tiene un peso de 1, entonces el primero ocupará el doble de espacio.

Si aún no lo ha hecho, prepárese a través de la página de diseños comunes de la guía de desarrollo para una buena introducción a los diseños.


Finalmente encontré la verdadera respuesta aquí: http://androidadvice.blogspot.com/2010/10/tablelayout-columns-equal-width.html

También hay un ejemplo más mínimo sobre aquí: https://.com/a/2865558/265521

Ejemplo:

<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent"> <TableRow> <Button android:layout_width="0dip" android:layout_height="match_parent" android:text="Why is doing layouts on Android" android:layout_weight="1" /> <Button android:layout_width="0dip" android:layout_height="match_parent" android:text="so" android:layout_weight="1" /> </TableRow> <TableRow> <Button android:layout_width="0dip" android:layout_height="match_parent" android:text="damn" android:layout_weight="1" /> <Button android:layout_width="0dip" android:layout_height="match_parent" android:text="frustrating?" android:layout_weight="1" /> </TableRow> </TableLayout>


Intente agregar android:stretchColumns="*" a su etiqueta <TableLayout> .