ListView invalidate() 和 invalidateViews() 的区别?

Sid*_*Sid 5 android android-listview android-fragments android-view-invalidate

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

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

The*_*oid 2

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

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

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

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

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

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

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