5

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

对我来说,单独的 invalidate() 是行不通的。而 invalidateViews() 只是按照我想要的方式工作,即重绘列表项。

4

1 回答 1

2

根据 Android 网页View InvalidateListView.invalidate () 将

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

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

ListView.invalidateViews (),Android AbsListView invalidateViews上声明,

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

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

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

于 2015-08-23T21:33:50.963 回答