View inside ScrollView doesn't take all place
Solution 1
Try adding android:fillViewport="true"
to your ScrollView
remember that
android:layout_height=”fill_parent”
means “set the height to the height of the parent.” This is obviously not what you want when using aScrollView
. After all, theScrollView
would become useless if its content was always as tall as itself. To work around this, you need to use the ScrollView attribute calledandroid:fillViewport
. When set to true, this attribute causes the scroll view’s child to expand to the height of theScrollView
if needed. When the child is taller than theScrollView
, the attribute has no effect.
http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/
Solution 2
Just add android:fillViewport="true" in yout xml layout in Scrollview
<ScrollView android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="@color/green"
xmlns:android="http://schemas.android.com/apk/res/android"
android:fitsSystemWindows="true"
android:fillViewport="true"
>
<!--define views here-->
</ScrollView>
Related videos on Youtube
g123k
Updated on July 08, 2022Comments
-
g123k almost 2 years
I have a RelativeLayout inside a ScrollView. My RelativeLayout has
android:layout_height="match_parent"
but the view doesn't take the entire size, it's like a wrap_content.Is there a way to have the real fill_parent/match_parent behavior ?
My layout :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:scaleType="fitXY" android:src="@drawable/top" /> <ImageView android:id="@+id/header" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/top" android:scaleType="fitXY" android:src="@drawable/headerbig" /> <ImageView android:id="@+id/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/header" android:layout_centerHorizontal="true" android:layout_marginBottom="3dp" android:src="@drawable/logo" /> <ScrollView android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_above="@+id/bottom" android:layout_below="@+id/logo" android:background="@drawable/background" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/dashboard01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/dashboard02" android:layout_centerHorizontal="true" android:layout_marginBottom="30dp" android:src="@drawable/dashboard01" android:visibility="visible" /> <ImageView android:id="@+id/dashboard02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:src="@drawable/dashboard02" /> <ImageView android:id="@+id/dashboard03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/dashboard02" android:layout_centerHorizontal="true" android:layout_marginTop="40dp" android:src="@drawable/dashboard03" android:visibility="visible" /> </RelativeLayout> </ScrollView> <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/logo" android:layout_centerHorizontal="true" android:scaleType="fitXY" android:src="@drawable/bar" /> <ImageView android:id="@+id/bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:scaleType="fitXY" android:src="@drawable/bottom" /> </RelativeLayout>
-
CoolMind almost 8 yearsThe same is for HorizontalScrollView.
-
Qasim about 7 yearsSaved my day, scrollview sucks without this :p
-
Anas Azeem almost 6 yearsWorked like a charm! Thanks. You saved my day.
-
Enselic over 4 yearsIf it doesn't work for you, make sure you set the attribute on the ScrollView, not the child!
-
dudi about 4 yearsThanks for the great answer. Save my day also