Страница 1 из 1

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

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

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

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

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

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

Добавлено: 15 мар 2013, 14:33
KamiSempai
Все очень просто и одновременно очень сложно, если вдаваться в подробности.
Если по простому, работает так:
Когда элемент уходит за пределы видимости он отправляется в "мусор".
Как только необходимо показать новый элемент сверху или снизу вызывается метод fillDown или fillUp (fillDown также вызывается при первом заполнении списка), в которых происходит примерно следующее. Делается попытка взять элемент из "мусора" и отправить его как convertView в getView(). Если в мусоре пусто то convertView = null.
После чего полученная новая или переработанная строка ставится на нужное место. И так по кругу.
Вот и все.