Содержание ListView зашифровывается при прокрутке

Поэтому у меня возникли проблемы с различными частями, из которых состоит мой ListView. Я помещаю их в ArrayList и использую собственный ArrayAdapter для подключения к ListView, что я делал раньше, поэтому я не верю, что там есть проблема. Сначала кажется, что в списке есть фрагменты в правильном порядке, но затем я прокручиваю список вниз, а затем содержимое загружается в неправильном порядке. Затем я прокручиваю назад и все перемешано. Кто-нибудь сталкивался с этим раньше?

Спасибо Джейк

1 ответ

Решение

Да, ваша проблема связана с тем, что List повторно использует представления для каждой строки. Допустим, ваш список может видеть 5 элементов, но в вашем ListAdapter есть 15 элементов. Android создаст 5 + 1 экземпляров вашего представления строк вместо 15. Один для каждой строки в списке + 1 для случаев, когда видна половина верха и низа. Когда строка перемещается из видимой области, List будет перезаписывать этот экземпляр представления для другой строки вместо создания новой. Если вы не сбросите все компоненты пользовательского интерфейса должным образом каждый раз, когда появятся артефакты из других строк, появляются. Вы должны убедиться, что каждый раз, когда вы связываете свои данные из объектов в вашем списке массивов с представлением, которое вы каждый раз устанавливаете в каждом поле.

Для лучшего описания этого см.

http://www.youtube.com/watch?v=N6YdwzAvwOA&feature=related

Другие вопросы по тегам