ListView перерабатывает представления, которые видны на экране - PullRequest
3 голосов
/ 07 июля 2011

У меня проблема с ListView, который повторяет представления, которые видны на экране. У меня может быть до 4 элементов в моем ListView, все они видны на экране. После того, как я обновил свойство объекта в ArrayList, которое использует ListAdapter, я вызываю метод notifyDataSetChanged () адаптера списка. Это заставляет ListView перерабатывать представления и перерисовывать его самостоятельно. Проблема в том, что он занимается переработкой в ​​обратном порядке. поэтому, если у меня есть кнопка в первом элементе списка, он будет во втором элементе списка после notifyDataSetChanged (). У меня есть getView, который изменяет свойства convertView, кроме кнопки onTouchListener.
Это очень проблематично, если у меня есть кнопка, которая работает с сенсорным событием (как кнопка PTT). его можно увидеть на некоторое время, а затем он становится невидимым :-(. 1. почему ListView перерабатывает элементы, которые видны на экране? это нормальное поведение? почему это происходит в обратном порядке? 2. что я могу сделать, чтобы решить мою проблему?

1 Ответ

0 голосов
/ 20 ноября 2011

Вы должны предоставить код для метода getview().А добавление кнопки к элементу может вызвать проблемы, если вы не используете проверки на кнопку добавления.Вместо добавления кнопки вы должны включить кнопку во все элементы и просто сделать невидимой кнопку в определенной позиции, где вы хотите.Также проверьте "null" для создания convertview в методе getview().Таким образом, он не будет перерабатывать / создавать представления / элементы, если они не равны NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...