ScrollView 内部的视图并不完全存在

我在 ScrollView 中有一个 RelativeLayout。 我的 RelativeLayout 有 android:layout_height="match_parent",但是视图并没有采用整个大小,它就像是一个 wrad _ content。

有没有一种方法可以实现真正的 fill _ father/match _ father 行为?

我的布局:

<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>
51641 次浏览

尝试将 android:fillViewport="true"添加到 ScrollView

请记住,android:layout_height=”fill_parent”的意思是“将高度设置为父级的高度”当使用 ScrollView时,这显然不是您想要的。毕竟,如果 ScrollView的内容总是和它自己一样高的话,它就会变得毫无用处。要解决这个问题,需要使用称为 android:fillViewport的 ScrollView 属性。如果设置为 true,该属性将导致滚动视图的子级在需要时扩展到 ScrollView的高度。当子元素高于 ScrollView时,该属性没有作用。

Http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/

只需在 Scrollview 的 yout xml 布局中添加 android: filViewport = “ true”即可

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