Уважаемые форумчане!
Мог бы кто нибудь рассказать максимально подробно
о том как работает ListView, а то в голове некоторая каша образовалась.
Имеется ввиду - когда приходящий в getView() convertView равен null, а когда нет?
Сам алгоритм работы этого компонента ,например что происходит когда прокручиваем наш ListView и один элемент уходит вверх, когда больше одного элемента уходит вверх ну и т.д.
Буду очень признателен!
Как работает ListView ?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Как работает ListView ?
Все очень просто и одновременно очень сложно, если вдаваться в подробности.
Если по простому, работает так:
Когда элемент уходит за пределы видимости он отправляется в "мусор".
Как только необходимо показать новый элемент сверху или снизу вызывается метод fillDown или fillUp (fillDown также вызывается при первом заполнении списка), в которых происходит примерно следующее. Делается попытка взять элемент из "мусора" и отправить его как convertView в getView(). Если в мусоре пусто то convertView = null.
После чего полученная новая или переработанная строка ставится на нужное место. И так по кругу.
Вот и все.
Если по простому, работает так:
Когда элемент уходит за пределы видимости он отправляется в "мусор".
Как только необходимо показать новый элемент сверху или снизу вызывается метод fillDown или fillUp (fillDown также вызывается при первом заполнении списка), в которых происходит примерно следующее. Делается попытка взять элемент из "мусора" и отправить его как convertView в getView(). Если в мусоре пусто то convertView = null.
После чего полученная новая или переработанная строка ставится на нужное место. И так по кругу.
Вот и все.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.