- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
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/
调用 invalidateViews() 后项目何时重绘? 我问是因为我尝试在 bg-thread 通知图像 rsc 下载后刷新 listItems。 但没有任何更新。只有在退出并重新进入后才会绘制新
ListView.invalidate() 和 ListView.invalidateViews() 有什么区别? 对我来说,单独使用 invalidate() 是行不通的。而 invalidateV
我一直在使用 listview,但突然间我体验到了它的一些随机行为。当我在 ListView 上调用 invalidateViews() 时,在某些情况下它会重新膨胀每一行的 View ,而在某些情况
ListView.invalidateViews() 和 Adapter.notifyDataSetChanged() 有什么区别吗? 最佳答案 是的,有。 ListView.invalidateVi
这两种方法都有效,但哪一种更好? 更新个人观点: public void onItemClick(AdapterView adapterView, View view, int i, long l)
我是一名优秀的程序员,十分优秀!