Я пытаюсь сделать четыре ряда по три кнопки в каждой, а внизу кнопок расположены два текстовых представления. Я хотел бы, чтобы все они были расположены равномерно, но это не так, и я не уверен, почему.
Вот код в моем файле 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>
Мои текстовые представления имеют следующий код:
TextView t = (TextView)findViewById(R.id.TextView01);
TextView t2 = (TextView)findViewById(R.id.TextView02);
t.setTextSize(24);
t2.setTextSize(24);
Когда я запускаю свою программу, я получаю:
Итак, чтобы помочь с этим добавить android:stretchColumns="0,1,2,3"
в вашем макете таблицы, который сделает кнопки даже размером.
Во-вторых, добавьте android:layout_span="2"
в оба ваших текстовых представления.
Вот вам окончательный код:
<!-- 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>
Если вы произвольно устанавливаете размер текста, чтобы сделать TextViews равномерно распределенным, его не нужно, когда у вас установлен android:layout_span
.