Как работает ListView ?

Интерфейс, диалоги, темы, стили, меню
Ответить
Dangreon
Сообщения: 41
Зарегистрирован: 01 янв 2013, 15:52

Как работает ListView ?

Сообщение Dangreon » 15 мар 2013, 13:53

Уважаемые форумчане!
Мог бы кто нибудь рассказать максимально подробно
о том как работает ListView, а то в голове некоторая каша образовалась.

Имеется ввиду - когда приходящий в getView() convertView равен null, а когда нет?

Сам алгоритм работы этого компонента ,например что происходит когда прокручиваем наш ListView и один элемент уходит вверх, когда больше одного элемента уходит вверх ну и т.д.

Буду очень признателен!

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Как работает ListView ?

Сообщение KamiSempai » 15 мар 2013, 14:33

Все очень просто и одновременно очень сложно, если вдаваться в подробности.
Если по простому, работает так:
Когда элемент уходит за пределы видимости он отправляется в "мусор".
Как только необходимо показать новый элемент сверху или снизу вызывается метод fillDown или fillUp (fillDown также вызывается при первом заполнении списка), в которых происходит примерно следующее. Делается попытка взять элемент из "мусора" и отправить его как convertView в getView(). Если в мусоре пусто то convertView = null.
После чего полученная новая или переработанная строка ставится на нужное место. И так по кругу.
Вот и все.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Ответить