Android为什么背景图片扩展scrollview

时间:2014-10-10 07:28:33

标签: android scrollview

你好,我有一个scrollview和相对布局。

当我拒绝滚动视图的背景时,scrollview会扩展背景图像的高度。

当我运行应用程序时,我发现活动可以滚动到底部,此区域没有项目。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none"
android:background="@drawable/back2"
android:padding="0dp" >

<RelativeLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:padding="0dp"
 >

3 个答案:

答案 0 :(得分:1)

1)如果为RelativeLayout而不是ScrollView指定背景,它会变得更好吗?

2)您可以执行以下构造:

<FrameView ...>
    <View background=anything *OR* ImageView src=anything ... />
    <ScrollView ...>
        <RelativeLayout background=transparentColor ...>
        </RelativeLayout>
    </ScrollView>
</FrameView>

FrameView将其子项绘制在另一个上面,第一个孩子是背景和 第二个孩子就是你现在所做的。

答案 1 :(得分:1)

为什么scrollview正在扩展 :: You might be using high resolution(large) image causing it to extend as you have explained in your question

可能的解决方案 :: Instead of background image, put the color to the background of scrollview


<强>测试 ::

  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:scrollbars="none"
    android:background="#FE2EC8"
    android:padding="0dp" >

    <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:padding="0dp"
     >

答案 2 :(得分:1)

我认为你的问题在于RelativeLayout的高度。将其置于scrollView中时,不能将relativeLayout高度设置为与parent匹配。 ScrollView没有确切的内部高度,因此您的相对布局无法测量其高度。这意味着在你的情况下你的RelativeLayout可能有任何高度,即使它是空的。例如,它可以是2个屏幕或具有不定高度(在这种情况下将是不定式滚动)。 它是未定义的行为,在这种情况下你不能等待任何确切的高度。您可以将layout_height =“match_parent”元素仅放在已定义高度的布局中。