Question

I have a tablelayout with weights for a 4 button grid. The problem is that I have on button that is in a relative layout in a tablerow which doesn't format correctly. If I have the height set to wrap content the result is this:

If I set it to fill_parent:

I can't get the button to properly fill its height weight. If I take out the relative layout it works fine. I've tried putting both in separate linear layouts to no avail.

Here is my code:

 <TableLayout
            android:id="@+id/tableLayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@+id/linearLayout"
            android:layout_margin="10dp"
            android:weightSum="2" >

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:minHeight="100dp" >

                <Button
                    android:id="@+id/searchBtn"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight=".5"
                    android:background="@drawable/yellow_btn"
                    android:minHeight="100dp"
                    android:text="Search"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />

                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight=".5"
                    android:minHeight="100dp" >

                    <Button
                        android:id="@+id/savedBtn"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="@drawable/yellowds"
                        android:minHeight="100dp"
                        android:text="Saved Searches"
                        android:textColor="#1d357d"
                        android:textSize="20dp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/newItemsOverlay"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignLeft="@+id/savedBtn"
                        android:layout_alignTop="@+id/savedBtn"
                        android:background="@drawable/badge_circle"
                        android:text="10"
                        android:textColor="#FFF"
                        android:textSize="16sp"
                        android:textStyle="bold" />
                </RelativeLayout>
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="30dip"
                android:layout_weight="1"
                android:minHeight="100dp" >

                <Button
                    android:id="@+id/checkNowBtn"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight=".5"
                    android:background="@drawable/yellowds"
                    android:minHeight="100dp"
                    android:text="Check Now"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />

                <Button
                    android:id="@+id/settingsBtn"
                    android:layout_width="0dp"
                    android:layout_height="fill_parent"
                    android:layout_weight=".5"
                    android:background="@drawable/yellowds"
                    android:minHeight="100dp"
                    android:text="Settings"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />
            </TableRow>
        </TableLayout>
Was it helpful?

Solution

Try with this :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </LinearLayout>

    <TableLayout
        android:id="@+id/tableLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/linearLayout"
        android:layout_margin="10dp"
        android:weightSum="2" >

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:minHeight="100dp" >

            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight=".5" >

                <Button
                    android:id="@+id/searchBtn"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#cccccc"
                    android:minHeight="100dp"
                    android:text="Search"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight=".5" >

                <Button
                    android:id="@+id/savedBtn"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#cccccc"
                    android:minHeight="100dp"
                    android:text="Saved Searches"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/newItemsOverlay"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/savedBtn"
                    android:layout_alignTop="@+id/savedBtn"
                    android:background="#ff0000"
                    android:text="10"
                    android:textColor="#FFF"
                    android:textSize="16sp"
                    android:textStyle="bold" />
            </RelativeLayout>
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginTop="30dip"
            android:layout_weight="1"
            android:minHeight="100dp" >

            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight=".5" >

                <Button
                    android:id="@+id/checkNowBtn"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#cccccc"
                    android:minHeight="100dp"
                    android:text="Check Now"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight=".5" >

                <Button
                    android:id="@+id/settingsBtn"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#cccccc"
                    android:minHeight="100dp"
                    android:text="Settings"
                    android:textColor="#1d357d"
                    android:textSize="20dp"
                    android:textStyle="bold" />
            </RelativeLayout>
        </TableRow>
    </TableLayout>

</RelativeLayout>

This will solve your problem.

Thanks.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top