具有 1k 对象列表的优化列表视图 [英] Optimized List view with 1k object list
问题描述
我想知道是否有任何优化的方法来创建一个包含超过 1k 个对象的适配器.我尝试了以下方法,但结果仍然不尽如人意.
I was wondering if there is any optimized way to create an adapter that holds more than 1k object in it. I have tried the following but still the results were not promising .
A.View holder pattern-它有帮助,但是当对象大小增加时它开始出现问题
A.View holder pattern-It helped but when the object size increased it started have issues
B.注意:我可以使用一个分页的 api 来传递定义数量的对象,但我没有在我的场景中对 Api 进行分页.
B.Note: I could have used a paginated api which passes a defined number of objects but I annot have paginated Api in my scenerio.
C.我的列表中确实有图片,但我已经处理好了.现在不是问题.
C.My list do have images in it but I have taken care of that.Its not a problem now.
让我知道实现适配器的任何新方法,该适配器可以在其中包含大量对象列表而不会出现任何问题.
Let me know of any new ways to achieve a adapter that can have a large number of object list in it without any issues.
推荐答案
据我所知,我使用了下面的一些结构
As far as I know, I use some structure below
- 使用 ViewHolder
- 不使用时不要创建新对象
- 优化布局层次结构
https://developer.android.com/training/improving-layouts/optimizing-layout.html
- 防止过度绘制
https://developer.android.com/tools/performance/debug-gpu-overdraw/index.html
在
ListView
中加载ImageView
:我正在使用通用图像加载器"并启用模式:滚动时停止加载图像
Load
ImageView
inListView
: I am using "Universal Image Loader" and enable mode: stop load image when scrolling
优化ListView
的getView(...)函数中的代码Adapter
:尽量让代码清晰简洁,限制使用if{}其他{}
Optimize code in the getView(...) function of ListView
Adapter
: Try to make the code clear and short, restrictive use if{}else{}
如果你有 OutOfMemory 的问题,看看 Java Referencehttps://www.rallydev.com/blog/工程/java-references-strong-soft-weak-phantom
If you have a problem with OutOfMemory, take a look at Java Reference https://www.rallydev.com/blog/engineering/java-references-strong-soft-weak-phantom
尝试使用 RecycleView,它比 ListView 更强大、更灵活并且是一项重大改进https://stackoverflow.com/a/31199564/5381331
Try to use RecycleView, it much more powerful, flexible and a major enhancement over ListView https://stackoverflow.com/a/31199564/5381331
这篇关于具有 1k 对象列表的优化列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!