Есть ли разница между «ListView.invalidateViews ()» и «Adapter.notifyDataSetChanged ()»?

Есть ли разница между ListView.invalidateViews() и Adapter.notifyDataSetChanged() ?

Ну да, есть.

ListView.invalidateViews() используется, чтобы сообщить ListView о недействительности всех его дочерних элементов (перерисовать их). Обратите внимание, что не должно быть равного количества просмотров, чем элементов. Это потому, что ListView перерабатывает свои представления элементов и перемещает их по экрану в интеллектуальном режиме во время прокрутки.

Adapter.notifyDataSetChanged() другой стороны, Adapter.notifyDataSetChanged() должен сказать наблюдателю адаптера, что содержимое адаптированного файла изменилось. Уведомление об изменении набора данных приведет к тому, что listview снова вызовет ваши методы адаптеров, чтобы настроить полосы прокрутки, регенерировать представления элементов и т. Д. …

Большую часть времени вы хотели бы использовать notifyDataSetChanged вместо invalidateViews , но это, безусловно, зависит от того, что вы пытаетесь выполнить.

  • Как я могу обновить одну строку в ListView?
  • android - listview получить просмотр позиции по позиции
  • Пользовательский getFilter в пользовательском ArrayAdapter в android
  • Удалить элементы ListView на Android
  • Цикл для загрузки изображений в виде списка по одному
  • Элемент списка избранных элементов Android ListView выделен
  • При проверке флажка в listview также проверяются другие случайные флажки
  • Справка относительно события onClick () для элемента пользовательской строки списка ListView
  • Android: реализация progressbar и «загрузка ...» для бесконечного списка, например Android Market
  • Android получает точную позицию прокрутки в ListView
  • Обнаружение прокрутки вверх и прокрутка вниз в ListView
  • Давайте будем гением компьютера.