Табличное представление, не занимающее всю высоту экрана

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

https://imgur.com/T1MDSBk

https://imgur.com/W8JD2SX

Ответ №2:

Строка вашей таблицы на самом деле занимает всю ширину, но из-за левой гравитации по умолчанию она находится на левой стороне используйте приведенный ниже код для любой строки, вы узнаете, какая разница

 <TableRow 
        android:background="#666"
        android:gravity="center">