Возможно ли и эффективно ли поместить LinearView и ExpandableListView в ScrollView? - PullRequest
1 голос
/ 01 октября 2011

Я делаю графический интерфейс из двух разных частей.Первая часть (вверху) состоит из нескольких баннеров, нескольких фиксированных кнопок.Поэтому я думаю, что использование LinearLayout - самый простой способ реализации.Вторая часть состоит из нескольких похожих элементов, сгруппированных вместе, которые, я думаю, могут быть реализованы с помощью ExpandableListView.Однако проблема в том, что содержание превышает размер экрана.Поэтому я намерен поместить два из них в ScrollView.Я проверил несколько источников, кажется, что поместить ExpandableListView внутри ScroolView невозможно или неэффективно, поэтому я боюсь ...

  1. Не могли бы вы подтвердить, если этовозможно?эффективный?

  2. Если нет, не могли бы вы дать мне несколько рекомендаций для этого макета?

Я действительно с нетерпением жду ваших опор.

С уважением.

Ответы [ 2 ]

3 голосов
/ 01 октября 2011

Если у вас есть фиксированный заголовок в верхней части списка, используйте Функция представления заголовка ListView .

Ввод списка ListViews в ScrollViews не имеет смысла, и вот почему:

ListView имеет одну цель: эффективно отображать неограниченные наборы данных.Так как они могут быть очень большими (десятки тысяч элементов и более), вам не нужно заранее создавать View для каждого элемента.Вместо этого ListView запрашивает у своего адаптера представления только для элементов, которые в настоящее время помещаются в измеренное пространство ListView на экране.Когда вид элемента прокручивается вне поля зрения, ListView отключает этот вид и передает его обратно адаптеру для заполнения новыми данными и повторного использования для отображения других элементов.(Это параметр convertView для метода getView Адаптера.)

ScrollView также имеет одну цель: взять один дочерний вид и дать ему «бесконечное» вертикальное пространство для размещения внутри.Затем пользователь может прокручивать вверх и вниз, чтобы увидеть весь контент.

Теперь, учитывая это, сколько представлений элемента создаст ListView для адаптера на 100 000 элементов, если бы он имел бесконечную высоту, доступную для заполнения?:)

Поместив ListView в ScrollView, вы побеждаете ключевую цель ListView.Родительский ScrollView даст ListView эффективно бесконечную высоту для работы, но ListView хочет иметь ограниченную высоту, чтобы он мог предоставить ограниченное окно в большой набор данных.

0 голосов
/ 01 октября 2011

Хорошо расширяемое представление списка само по себе имеет свойство прокрутки, поэтому помещать его в представление прокрутки действительно нежелательно. Поскольку обе прокрутки противоречат друг другу, и в этом случае плавная прокрутка не может быть получена ..

Если у нас есть какие-либоданные, которые будут отображаться в списке до или после ...

Лучший способ - использовать представление верхнего и нижнего колонтитула для списка ...

Я рекомендую использовать верхний и нижний колонтитулы в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...