#android #height #android-tablayout
#Android #высота #android-табличное описание
Вопрос:
У меня есть TableLayout, который представляет собой просто клавиатуру калькулятора с таблицами с кнопками. К сожалению, я не могу понять, как заставить его занимать всю высоту экрана (как в портретном, так и в альбомном режиме). Я пытался как-то добиться этого с помощью весов, но, к сожалению, это не помогло. Вот выдержка из всего кода.
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:shrinkColumns="0, 1, 2"
android:stretchColumns="3">
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button1"
android:text="Bksp"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button1_1"
android:text="AC"
android:onClick="keyboardHandler"
/>
<Button
android:layout_height="wrap_content"
android:id="@ id/button2"
android:text="C"
android:onClick="keyboardHandler"/>
</TableRow>
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button12"
android:text="7"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button13"
android:text="8"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button14"
android:text="9"
android:onClick="keyboardHandler"/>
</TableRow>
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button20"
android:text="4"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button21"
android:text="5"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button22"
android:text="6"
android:onClick="keyboardHandler"/>
</TableRow>
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button24"
android:text="1"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button25"
android:text="2"
android:onClick="keyboardHandler"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@ id/button26"
android:text="3"
android:onClick="keyboardHandler"/>
</TableRow>
Ответ №1:
Вот так:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="@ id/button1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="Bksp"/>
<Button
android:id="@ id/button1_1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="AC"
/>
<Button
android:id="@ id/button2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="C"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="@ id/button12"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="7"/>
<Button
android:id="@ id/button13"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="8"/>
<Button
android:id="@ id/button14"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="9"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="@ id/button20"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="4"/>
<Button
android:id="@ id/button21"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="5"/>
<Button
android:id="@ id/button22"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="6"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="@ id/button24"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="1"/>
<Button
android:id="@ id/button25"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="2"/>
<Button
android:id="@ id/button26"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="keyboardHandler"
android:text="3"/>
</TableRow>
</TableLayout>
Ответ №2:
Строка вашей таблицы на самом деле занимает всю ширину, но из-за левой гравитации по умолчанию она находится на левой стороне используйте приведенный ниже код для любой строки, вы узнаете, какая разница
<TableRow
android:background="#666"
android:gravity="center">