ListView中invalidate()和invalidateViews()有什么区别?

5

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

对我而言,仅使用invalidate()无效。然而,invalidateViews()则可以按照我期望的方式工作,即重新绘制列表项。

1个回答

2
根据Android网页View InvalidateListView.invalidate()将使整个视图无效。如果视图可见,则会调用onDraw(android.graphics.Canvas)事件来重绘Canvas背景。这在外观/感觉发生变化时非常有用。
根据Android AbsListView invalidateViews所述,这将导致所有视图被重建和重绘。我认为这意味着它将“重建”与ListView相关联的修改数据,并更新外观/感觉。但是,这也会更新子视图,并且需要时间。通常在数据已更改时,我使用BaseAdapter的notifyDataSetChanged()方法。
总之,请根据您的需求选择适当的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接