Is there any difference between ListView.invalidateViews()
and Adapter.notifyDataSetChanged()
?
Well yes, there is.
ListView.invalidateViews()
is used to tell the ListView to invalidate all its child item views (redraw them).
Note that there not need to be an equal number of views than items. That's because a ListView recycles its item views and moves them around the screen in a smart way while you scroll.
Adapter.notifyDataSetChanged()
on the other hand, is to tell the observer of the adapter that the contents of what is being adapted have changed. Notifying the dataset changed will cause the listview to invoke your adapters methods again to adjust scrollbars, regenerate item views, etc...
Most of the time you would want to use notifyDataSetChanged
instead of invalidateViews
, but it certainly depends on what you are trying to accomplish.
invalidateViews
will be useful? –
Devault invalidateViews
will only be useful if you need to redraw the visible items yet nothing on them has changed... –
Repp invalidateViews
would be to change the font size of your ListView
: you don't touch the data, but the rendering. –
Everhart © 2022 - 2024 — McMap. All rights reserved.