layout_weight con los botones y las vistas de texto en fila de la tabla
-
14-10-2019 - |
Pregunta
Estoy tratando de hacer cuatro filas de tres botones cada uno, y en la parte inferior de los botones son dos vistas de texto. Me gustaría que todos ellos estén espaciados uniformemente, pero que no son y no estoy seguro de por qué.
Este es el código en mi archivo main.xml
.
<?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_width="wrap_content"
android:layout_height="wrap_content">
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button01"
android:text="@string/str_1"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button02"
android:text="@string/str_2"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button03"
android:text="@string/str_3"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button04"
android:text="@string/str_4"/>
</TableRow>
<TableRow android:id="@+id/TableRow02"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button05"
android:text="@+string/str_5"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button06"
android:text="@+string/str_6"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button07"
android:text="@+string/str_7"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button08"
android:text="@+string/str_8"/>
</TableRow>
<TableRow android:id="@+id/TableRow03"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button09"
android:text="@+string/str_9"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button10"
android:text="@+string/str_10"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button11"
android:text="@+string/str_11"/>
<Button android:onClick="button_click"
android:layout_weight="1"
android:id="@+id/Button12"
android:text="@+string/str_12"/>
</TableRow>
<TableRow android:id="@+id/TableRow04"
android:layout_width="wrap_content"
android:layout_height="fill_parent">
<TextView android:text="@+id/TextView01"
android:layout_weight="1"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<TextView android:text="@+id/TextView02"
android:layout_weight="1"
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</TableRow>
</TableLayout>
Mis vistas de texto tienen el siguiente código:
TextView t = (TextView)findViewById(R.id.TextView01);
TextView t2 = (TextView)findViewById(R.id.TextView02);
t.setTextSize(24);
t2.setTextSize(24);
Cuando ejecuto mi programa me sale:
Solución
aceptable para ayudar con este complemento android:stretchColumns="0,1,2,3"
en su tabla de disposición que haría que incluso los botones de tamaño.
En segundo lugar añadir un android:layout_span="2"
a ambos de sus vistas de texto.
Heres que un código final:
<!-- NOTICE STRETCHCOLUMNS ATTRIBUTE-->
<TableLayout android:id="@+id/TableLayout01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:stretchColumns="0,1,2,3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
.
.
.
.
.
<!-- NOTICE LAYOUT_SPAN ATTRIBUTE-->
<TextView android:text="@+id/TextView01"
android:layout_weight="1"
android:id="@+id/TextView01"
android:layout_span="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<TextView android:text="@+id/TextView02"
android:layout_weight="1"
android:id="@+id/TextView02"
android:layout_span="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
Si va a configurar el tamaño del texto mediante programación para hacer sus TextViews uniformemente espaciadas, no es necesaria cuando se ha activado android:layout_span
.