Содержание ListView зашифровывается при прокрутке - PullRequest
3 голосов
/ 01 декабря 2010

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

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

1 Ответ

5 голосов
/ 01 декабря 2010

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

Более подробное описание этого см.

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

...