What is the difference between ListView.invalidate() and ListView.invalidateViews()?
For me, invalidate() alone did not work. Whereas invalidateViews() worked just the way I wanted i.e. to redraw the List items.
According to Android webpage View Invalidate , ListView.invalidate() will
Invalidate the whole view. If the view is visible, onDraw(android.graphics.Canvas) will be called
This redraws the Canvas background through onDraw
event. This is useful when the looks/feel have changed.
ListView.invalidateViews(), stated on the Android AbsListView invalidateViews,
Causes all the views to be rebuilt and redrawn.
I think this means it will "rebuild" the modified data associated with the ListView, and update the looks/feel. However, this updates child views as well, and it is time consuming. Normally I use notifyDataSetChanged() of BaseAdapter when data has changed.
In conclusion, use the method that is appropriate for your needs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With