Если у вас есть фиксированный заголовок в верхней части списка, используйте Функция представления заголовка ListView .
Ввод списка ListViews в ScrollViews не имеет смысла, и вот почему:
ListView имеет одну цель: эффективно отображать неограниченные наборы данных.Так как они могут быть очень большими (десятки тысяч элементов и более), вам не нужно заранее создавать View для каждого элемента.Вместо этого ListView запрашивает у своего адаптера представления только для элементов, которые в настоящее время помещаются в измеренное пространство ListView на экране.Когда вид элемента прокручивается вне поля зрения, ListView отключает этот вид и передает его обратно адаптеру для заполнения новыми данными и повторного использования для отображения других элементов.(Это параметр convertView
для метода getView
Адаптера.)
ScrollView также имеет одну цель: взять один дочерний вид и дать ему «бесконечное» вертикальное пространство для размещения внутри.Затем пользователь может прокручивать вверх и вниз, чтобы увидеть весь контент.
Теперь, учитывая это, сколько представлений элемента создаст ListView для адаптера на 100 000 элементов, если бы он имел бесконечную высоту, доступную для заполнения?:)
Поместив ListView в ScrollView, вы побеждаете ключевую цель ListView.Родительский ScrollView даст ListView эффективно бесконечную высоту для работы, но ListView хочет иметь ограниченную высоту, чтобы он мог предоставить ограниченное окно в большой набор данных.