ListView.invalidateViews()
和 Adapter.notifyDataSetChanged()
有什么区别吗?
最佳答案
是的,有。
ListView.invalidateViews()
用于告诉 ListView 使其所有子项 View 无效(重绘它们)。
请注意, View 数不必与项目数相等。 这是因为 ListView 会回收其项目 View 并在您滚动时以智能方式在屏幕上移动它们。
Adapter.notifyDataSetChanged()
另一方面,是告诉适配器的观察者正在适配的内容发生了变化。通知数据集更改将导致 ListView 再次调用您的适配器方法来调整滚动条、重新生成项目 View 等...
大多数情况下,您希望使用 notifyDataSetChanged
而不是 invalidateViews
,但这当然取决于您要完成的工作。
关于android - `ListView.invalidateViews()` 和 'Adapter.notifyDataSetChanged()' 之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676720/