ListView invalidate()与invalidateViews()的区别



ListView.invalidate()和ListView.invalidateViews()的区别是什么?

对我来说,invalidate()单独不起作用。而invalidateViews()的工作方式正是我想要的,即重新绘制列表项

根据Android网页View Invalidate, ListView.invalidate()将

使整个视图无效。如果视图是可见的,onDraw(android.graphics.Canvas)将被调用

通过onDraw事件重新绘制画布背景。当外观/感觉发生变化时,这很有用。

ListView.invalidateViews(),在Android AbsListView invalidateViews中声明,

导致所有视图被重新构建和重新绘制。

我认为这意味着它将"重建"与ListView相关的修改数据,并更新外观/感觉。然而,这也会更新子视图,而且非常耗时。通常我使用notifyDataSetChanged()的BaseAdapter当数据发生变化。

总之,使用适合你需要的方法

相关内容

  • 没有找到相关文章

最新更新