What is the best way of constructing a ListView
that uses the least memory possible? This is important, because I met a few implementations and most of them is lagging when I scroll the ListView
on low-end devices, but I saw a few apps, where the scroll is very smooth, even on low-end devices. How can it be done? What is the most efficient way from a memory usage point of view to construct such a ListView
?
- recycle your views in
getView()
- use
ViewHolder
pattern - use lazy loading if you have a lot of data to fill the list with
- use
Cursor
as underlying data instead of object list built from cursor if your data comes fromdatabase
, you save memory by not creating additional objects. - see http://www.google.com/events/io/2010/sessions/world-of-listview-android.html
- see http://android.amberfog.com/?p=296
You will have to use the ViewHolder pattern.
Look at this code with description to increase the efficiency of lisview.
Keep in mind when you have lots of data to show in listview then at a time do not load all data . First load 2o data then load another when listview reaches at end.
This is also another way to increase the efficiency of listview.
来源:https://stackoverflow.com/questions/11684520/efficient-listview-in-android