Я пытаюсь настроить действие в Android, которое имеет 50% высоты экрана для ScrollView и остальные 50% для ListView.
Для этого я установил вес каждого на «1».
Как это:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip">
<ScrollView android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1">
<TableLayout android:id="@+id/my_table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:shrinkColumns="0">
<TableRow android:padding="5dip"
android:id="@+id/fault_heading"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/table_title"
android:paddingRight="20dip"/>
</TableRow>
<!-- More rows are added at run time. -->
</TableLayout>
</ScrollView>
<ListView android:id="@+id/comments"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"></ListView>
</LinearLayout>
Когда и ScrollView, и ListView имеют слишком много контента для отображения без прокрутки, это прекрасно работает.
Когда ScrollView требуется только 20% экрана, а ListView требуется 70%, ListView увеличивается до 70%, поэтому он может отображаться без прокрутки. Это не то, что я ожидал, но это хорошо.
Проблема, с которой я столкнулся, заключается в том, что ListView имеет так много данных, что для отображения необходим весь экран И просмотр Scroll только с 1 или 2 строками данных. В этом случае ListView увеличивается почти до полной высоты и оставляет пространство, эквивалентное примерно одной строке текста для представления с прокруткой.
Кажется, я не могу понять, как зарезервировать определенную часть экрана для ScrollView, независимо от размера ListView.
Объем пространства, которое ScrollView может захватить, кажется прямо пропорциональным количеству строк в его дочерней таблице. Когда это только 1, представление прокрутки имеет только около половины см в высоту.