Android ScrollView与ListView显示了许多动态项

Android ScrollView与ListView显示了许多动态项,android,listview,out-of-memory,scrollview,heap-memory,Android,Listview,Out Of Memory,Scrollview,Heap Memory,从服务器接收到一个对象数组 有两种方式显示项目: 使对象适应ListView 使用滚动视图 因此,如果我使用scroll View并以编程方式添加项目,则会有一些问题: 以编程方式添加项是否会导致内存不足 是否需要从内存中删除项目?或者在调用onDestroy或将项目移出屏幕后自动删除 问候Listview最适合您。我更喜欢使用android的volly库。它易于使用,非常方便和有用 如果数据集很大,ListView本身不会停止OOMs,那么您必须使用由一些非内存数据存储(如sql数据库)支

从服务器接收到一个对象数组 有两种方式显示项目:

  • 使对象适应ListView
  • 使用滚动视图
因此,如果我使用scroll View并以编程方式添加项目,则会有一些问题:

  • 以编程方式添加项是否会导致内存不足
  • 是否需要从内存中删除项目?或者在调用onDestroy或将项目移出屏幕后自动删除

  • 问候

    Listview最适合您。我更喜欢使用android的volly库。它易于使用,非常方便和有用

    如果数据集很大,ListView本身不会停止OOMs,那么您必须使用由一些非内存数据存储(如sql数据库)支持的CusorAdapter来避免将整个数据集加载到内存中

    ListView将减少视图用于向用户表示数据的内存量,因为它只会初始化用户可以看到的视图(如果可能,在用户滚动时循环使用视图)

    因为只有可见的视图加载ListView,所以性能也应该更好,因为布局过程会更快

    在大多数情况下,ListView更适合这种类型的东西


    (*)如果适配器的getView或bindView e.t.c.很复杂,或者列表中的每一行都有自己的视图类型,那么滚动性能实际上可能会更差。

    最好选择
    列表视图
    ,它只会使用一个屏幕所需的视图对象。如果您有许多项,您将拥有更多的视图对象。当视图从屏幕上消失时,必须释放视图。这就是为什么需要使用适配器。