ListView.invalidate()和ListView.invalidateViews()的区别是什么?
对我来说,invalidate()单独不起作用。而invalidateViews()的工作方式正是我想要的,即重新绘制列表项
根据Android网页View Invalidate, ListView.invalidate()将
使整个视图无效。如果视图是可见的,onDraw(android.graphics.Canvas)将被调用
通过onDraw
事件重新绘制画布背景。当外观/感觉发生变化时,这很有用。
ListView.invalidateViews(),在Android AbsListView invalidateViews中声明,
导致所有视图被重新构建和重新绘制。
我认为这意味着它将"重建"与ListView相关的修改数据,并更新外观/感觉。然而,这也会更新子视图,而且非常耗时。通常我使用notifyDataSetChanged()的BaseAdapter当数据发生变化。
总之,使用适合你需要的方法