У меня была такая же проблема, и я нашел эту страницу:
http://www.curious -creature.org / 2010/08/15 / scrollviews-удобно-трик /
По сути, вы устанавливаете ScrollView android:fillViewport
в значение true, что позволяет дочернему виду расширяться до той же высоты, что и сам ScrollView, заполняя пространство. Тогда вам просто нужно, чтобы один из дочерних элементов управления 'layout_height
был установлен на fill_parent
и layout_weight
на 1
, в результате чего этот элемент управления "пружинил", чтобы заполнить пустое пространство.
Обратите внимание, что если содержимое ScrollView уже достаточно высокое, чтобы заполнить ScrollView, android:fillViewport
не действует, поэтому настройка срабатывает только при необходимости.
Мой окончательный XML выглядит примерно так:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_height="wrap_content">
<LinearLayout
android:layout_height="fill_parent"
android:layout_weight="1">
<!-- this expands to fill the empty space if needed -->
</LinearLayout>
<!-- this sits at the bottom of the ScrollView,
getting pushed out of view if the ScrollView's
content is tall enough -->
<ImageView
android:layout_height="wrap_content"
android:src="@drawable/footer_image">
</ImageView>
</LinearLayout>
</ScrollView>