Android – Can’t resize a RelativeLayout inside a ScrollView to fill the whole screen

androidandroid-layoutandroid-relativelayoutandroid-scrollview

I am having a weird issue that I am not sure how to fix. I have a RelativeLayout inside a ScrollView and this scrollView has it's height set to fill_parent. So does the RelativeLayout. Still, the contents are not filling the entire screen and it's going only to the wrap_content of the last layout inside this RelativeLayout.

Here is my code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/com.pontai"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:id="@+id/relativeLayout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <LinearLayout
                android:id="@+id/linearLayout1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/relativeLayout3"
                android:layout_alignParentTop="true"
                android:layout_alignRight="@+id/relativeLayout5"
                android:layout_marginTop="5dp"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="How much points you have here:"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textViewTotalPoints1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="120"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </LinearLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout4"
                android:layout_width="wrap_content"
                android:layout_height="80dp"
                android:layout_alignLeft="@+id/relativeLayout3"
                android:layout_below="@+id/linearLayout1"
                android:layout_marginTop="5dp"
                android:layout_toLeftOf="@+id/textView7"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Ratings"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewPositivePoints"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <ImageView
                    android:id="@+id/imageView2"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_below="@+id/textView3"
                    android:layout_toLeftOf="@+id/textView3"
                    android:src="@drawable/thumbs_up_focused" />

                <TextView
                    android:id="@+id/textViewNegativePoints"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignRight="@+id/textView3"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="3dp"
                    android:text="22"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textView5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/textViewNegativePoints"
                    android:layout_alignBottom="@+id/textViewNegativePoints"
                    android:layout_alignLeft="@+id/textView3"
                    android:layout_marginLeft="3dp"
                    android:text="33"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <ImageView
                    android:id="@+id/imageView3"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_alignTop="@+id/imageView2"
                    android:layout_toRightOf="@+id/textViewNegativePoints"
                    android:src="@drawable/thumbs_down_focused" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout5"
                android:layout_width="95dp"
                android:layout_height="80dp"
                android:layout_alignRight="@+id/relativeLayout3"
                android:layout_alignTop="@+id/relativeLayout4"
                android:layout_toRightOf="@+id/textView7"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Comments"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_alignParentBottom="true"
                    android:layout_centerHorizontal="true"
                    android:src="@drawable/speech_bubble" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/relativeLayout4"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp" >

                <TextView
                    android:id="@+id/textViewOfferName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="Offer Name"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/textViewBusinessName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="35dp"
                    android:text="Business Name"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewBusinessAddress"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="60dp"
                    android:text="Business Address"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewNull1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="80dp"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/textViewTotalPoints"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewNull1"
                    android:layout_centerHorizontal="true"
                    android:text="0/0"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <Button
                    android:id="@+id/buttonUseNow"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewTotalPoints"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="@string/offer_details_use_now" />

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/buttonUseNow"
                    android:layout_marginTop="10dp"
                    android:text="@string/_terms_and_conditions_"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textViewTermsConditions"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/textView2"
                    android:layout_marginTop="2dp"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
            </RelativeLayout>

            <TextView
                android:id="@+id/textView7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/relativeLayout5"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="30dp"
                android:text="e"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:visibility="invisible" />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

Anyone have ideas of how I can make the RelativeLayout2 to have the same height as the ScrollView, meaning, I want it to reach the bottom of the screen?

Thanks and regards,
Felipe

Best Answer

I have faced this problem before. Just Use android:fillViewport="true" in your scrollview and it will fill up the screen.

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         android:fillViewport="true" >