Mayout_weight с кнопками и текстовыми видами в строке таблицы
-
14-10-2019 - |
Вопрос
Я пытаюсь сделать по четыре ряда по три кнопки каждый, а внизу кнопок находятся два текстовых представления. Я хотел бы, чтобы все они были равномерно распределены, но это не так, и я не уверен, почему.
Вот код в моем 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>
Если вы настраиваете программный размер текста, чтобы сделать свои текстовые обзоры равномерно распределенными, это не нужно, когда у вас есть android:layout_span
установлен.