ListView.invalidateViews()
和Adapter.notifyDataSetChanged()
之间有什么区别吗?
答案 0 :(得分:39)
是的,有。
ListView.invalidateViews()
用于告诉ListView使其所有子项视图无效(重绘它们)。
请注意,不需要与项目相同数量的视图。这是因为ListView会回滚其项目视图,并在您滚动时以智能方式在屏幕上移动它们。
Adapter.notifyDataSetChanged()
是告诉适配器的观察者正在调整的内容已经改变。通知更改的数据集将导致listview再次调用您的适配器方法来调整滚动条,重新生成项目视图等...
大多数情况下,您希望使用notifyDataSetChanged
代替invalidateViews
,但这肯定取决于您要完成的工作。