2014-10-10 44 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" 
    >