Search code examples
androidheightandroid-tablayout

TableLayout not occupying whole screen height


I have TableLayout which is just a simple calculator keyboard with TableRows with buttons. Unfortunately, I can't figure out how to make it occupy whole screen height (both in portrait and landscape mode). I tried to achieve it somehow with weights but unfortunately it didn't help. Here is the extract from whole code.

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


Solution

  • Here you go:

    <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://i.sstatic.net/VEnDl.jpg

    https://i.sstatic.net/V3ejJ.jpg