Search code examples
androidxmlandroid-relativelayoutandroid-scrollview

Scroll view doesn't show bottom part


I have this relative layout that has a scroll view in it. But when the scroll view has more text in it, it doesn't show the bottom text, it goes behind my button. How can I fix this?

Here is what I've done:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00AEEC"
    android:orientation="vertical"
    android:weightSum="100" >

    <RelativeLayout
        android:id="@+id/details_header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="clip_horizontal"
        android:background="#00AEEC"
        android:padding="20dp" >



        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/onlywithalcohol_heading_page2" />

    </RelativeLayout>

 <RelativeLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_below="@+id/details_header"
     android:layout_centerHorizontal="true"
     android:layout_margin="20dp" >

     <TextView
         android:id="@+id/details_country"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentTop="true"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="20dp"
         android:text="USA"
         android:textAlignment="center"
         android:textAppearance="?android:attr/textAppearanceMedium" />

     <TextView
         android:id="@+id/details_title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@id/details_country"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="20dp"
         android:gravity="center_horizontal"
         android:text="Fastest Time To Drink A Pint Of Soda Water, Consume A Bowl Of Macaroni And Cheese With Chopsticks, Eat And Read A Fortune Cookie And Take A Shot Of Peach Schnapps "
         android:textAlignment="center"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:textColor="#FFFF00" />

     <ScrollView
         android:layout_width="fill_parent"
         android:layout_height="200dp"
         android:layout_alignParentBottom="true"
         android:layout_below="@id/details_title"
         android:layout_centerHorizontal="true" >

         <TextView
             android:id="@+id/details_description"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginBottom="20dp"
             android:gravity="center_horizontal"
             android:paddingLeft="10dp"
             android:paddingRight="10dp"
             android:text="Sam Birdsong removed a cork from an empty bottle of wine using just a napkin in two minutes, 55.47 seconds.He stipulated beforehand that he had to begin with an unopened bottle, uncork it and pour out the wine, then shove the cork back inside the bottle and pull it out with a cloth napkin"
             android:textAlignment="center"
             android:textAppearance="?android:attr/textAppearanceMedium" />
     </ScrollView>
 </RelativeLayout>

 <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:layout_centerHorizontal="true"
     android:layout_margin="10dp"
     android:background="#00AEEC"
     android:orientation="vertical" >

     <Button
         android:id="@+id/details_back_btn"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:padding="10dp"
         android:text="@string/back_btn"
         android:textSize="18sp"
         android:textStyle="bold" />
 </LinearLayout>

</RelativeLayout>

Solution

  • Change your layout to be LinearLayout and it should work for you, you might need to use

    android:gravity="bottom"
    

    to align the button at the very bottom of the screen

    and you might need to use

    android:layout_weight=""
    

    if needed.

    here is a block that you can place inside a LinearLayout with vertical orientation :

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/ic_launcher" />
    
    <TextView
        android:id="@+id/details_country"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:text="USA"
        android:textAlignment="center"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    
    <TextView
        android:id="@+id/details_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/details_country"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:gravity="center_horizontal"
        android:text="Fastest Time To Drink A Pint Of Soda Water, Consume A Bowl Of Macaroni And Cheese With Chopsticks, Eat And Read A Fortune Cookie And Take A Shot Of Peach Schnapps "
        android:textAlignment="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#FFFF00" />
    
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:layout_alignParentBottom="true"
        android:layout_below="@id/details_title"
        android:layout_centerHorizontal="true" >
    
        <TextView
            android:id="@+id/details_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:gravity="center_horizontal"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:text="Sam Birdsong removed a cork from an empty bottle of wine using just a napkin in two minutes, 55.47 seconds.He stipulated beforehand that he had to begin with an unopened bottle, uncork it and pour out the wine, then shove the cork back inside the bottle and pull it out with a cloth napkin , and this wilk take for ever and ever out the wine, then shove the cork back inside the bottle and pull it out with a cloth napkin , and this wilk take for ever and ever out the wine, then shove the cork back inside the bottle and pull it out with a cloth napkin , and this wilk take for ever and ever out the wine, then shove the cork back inside the bottle and pull it out with a cloth napkin , and this wilk take for ever and ever "
            android:textAlignment="center"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </ScrollView>
    
    <Button
        android:id="@+id/details_back_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight=""
        android:gravity="bottom"
        android:padding="10dp"
        android:text="back"
        android:textSize="18sp"
        android:textStyle="bold" />