Разница между ListView invalidate() и invalidateViews()?

В чем разница между ListView.invalidate() и ListView.invalidateViews()?

Для меня недействительным () один не работал. В то время как invalidateViews () работал так, как я хотел, т.е. перерисовывал элементы списка.

1 ответ

В соответствии с недействительным View на веб-странице Android, ListView.invalidate() будет

Опровергнуть весь взгляд. Если видимость видна, вызывается onDraw(android.graphics.Canvas)

Это перерисовывает фон холста через onDraw событие. Это полезно, когда внешний вид / ощущения изменились.

ListView.invalidateViews(), указанный в Android AbsListView invalidateViews,

Заставляет все представления быть перестроенными и перерисованными.

Я думаю, это означает, что он "перестроит" измененные данные, связанные с ListView, и обновит внешний вид. Однако это также обновляет дочерние представления, и это отнимает много времени. Обычно я использую notifyDataSetChanged() BaseAdapter, когда данные изменились.

В заключение, используйте метод, который соответствует вашим потребностям.

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