2014-10-10 43 views
0

你好我有一个滚动视图和相对布局里面。Android为什么背景图像延伸滚动视图

当我拒绝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" 
> 
+0

发布xml的完整代码!为了让开发者明确解决它! – Devrath 2014-10-10 07:36:36

+0

ScrollView是可滚动的,它肯定会根据背景图像在底部延伸。在这里显示你的屏幕截图。 – Piyush 2014-10-10 07:39:14

回答

1

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

1

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

2)你可以做下面的结构:

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

FrameView得出它的孩子一个在另一个上面,第一个孩子的背景和 的第二个孩子是你现在要做什么。

1

为什么滚动视图是扩大 :: 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" 
    >