当前位置: 首页 > 知识库问答 >
问题:

具有1k对象列表的优化列表视图

储嘉悦
2023-03-14

我想知道是否有任何优化的方法来创建一个包含超过1k对象的适配器。我尝试了以下方法,但结果仍然不乐观。

A.View持有人模式-它有帮助,但当对象大小增加它开始有问题

B.注意:我本可以使用一个分页的api,它传递了定义数量的对象,但我在我的场景中没有分页的Api。

C.我的列表中确实有图片,但我已经处理好了。现在不成问题了。

让我知道实现适配器的任何新方法,该适配器中可以有大量对象列表,而不会出现任何问题。

共有1个答案

白宏义
2023-03-14

据我所知,我在下面使用了一些结构

  • 使用ViewHolder
  • 如果您不使用
  • ,请不要创建新对象
  • 优化布局层次结构

https://developer.android.com/training/improving-layouts/optimizing-layout.html

  • 防止透支

https://developer.android.com/tools/performance/debug-gpu-overdraw/index.html

>

  • 列表视图中加载图像视图:我正在使用“通用图像加载程序”并启用模式:滚动时停止加载图像

    优化 ListView Adapter 的 getView(...) 函数中的代码:尝试使代码清晰简洁,限制性使用 if{}else{}

    如果您对OutOfMemory有问题,请查看Java参考https://www.rallydev.com/blog/engineering/java-references-strong-soft-weak-phantom

    尝试使用RecycleView,它比ListView强大得多,灵活得多,是一个重大的增强https://stackoverflow.com/a/31199564/5381331

  •  类似资料:
    • 其中备注是对象内部的vavr列表字段。 现在,如果尝试将相同的值反序列化到对象中,则会出现错误: 当尝试反序列化时,为什么serified JSON文本不起作用? 在Java代码中有没有其他方法可以将vavr对象打印成文本格式并将其转换回POJO?

    • 问题内容: 我的用户表有26列以上,这正常吗?当该用户表引起我注意时,数据库已被标准化为第3级。设计26列是否可以,或者在设计数据库时应该使用其他优化技术吗? 更多:对表进行分区是什么意思? 问题答案: 26列没有什么问题,但是如果很少使用它们,那就不一样了。 而不是使用26列,而是使用更少的列,并使用序列化字符串将它们分组。 将字段更改为文本字段,然后在代码中可以对它们进行反序列化并使用它们。如

    • 我试图使用SimpleXML序列化HealthCase类的对象。我能够正确地序列化所有内容,除了测试对象的ArrayList和每个测试对象拥有的图像对象的ArrayList。所有类的每个字段都有适当的访问器和突变器方法,但是当我尝试序列化时,会抛出各种xml复合写入错误,并且不会写入相关的XML文件。 HealthCase类(不包括方法): 测试类别(不包括方法): 图像类(不包括方法): 我应该

    • 我试图将JSON字符串反序列化为Java对象,但遇到以下异常: JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@306A30C7未能对给定类型类java.util.ArrayList的json对象[“93”]进行反序列化 我的主文件: 应该表示JSON的类是: 我尝试了SO上给出的解决方案,但也有

    • 我有以下列表,里面是另一个列表,然后是字符串列表 <代码>列表 示例 除了执行嵌套循环并最终替换列表之外,还有更好的方法吗?也许有溪流?