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>
.