【发布时间】:2011-02-09 11:17:07
【问题描述】:
我是 Android 编程新手。我想知道 ListView 可以存储多少项目?我在文档中搜索,但他们不谈论这个。如果我在 ListAdapter 中放入很多(可能是 10k)项,会影响性能吗?
干杯, MK。
【问题讨论】:
-
我建议你必须阅读这篇文章 article
标签: android listview listadapter
我是 Android 编程新手。我想知道 ListView 可以存储多少项目?我在文档中搜索,但他们不谈论这个。如果我在 ListAdapter 中放入很多(可能是 10k)项,会影响性能吗?
干杯, MK。
【问题讨论】:
标签: android listview listadapter
ListView 在 Android 中是虚拟化的。实际上,这意味着其中的元素数量没有实际限制。您可以将数百万行放入列表中,它只会为当前可见的行(或更多的顶部)分配内存。
查看有关为 AdapterView 编写自定义适配器类的数十个教程(ListView 扩展了该类)。还可以查看关于 ListViews 的 Google I/O 2010 会议;真的很有用:here
【讨论】:
没有限制,因为 ListView 仅在项目进入视图时呈现项目,因此在呈现项目时只关心 ListView 的数据(尽管它需要知道项目的数量才能正确呈现滚动条)
Google IO 视频非常适合学习 ListView http://www.youtube.com/watch?v=wDBM6wVEO70
也就是说,我会问您是否应该加载那么多,因为显然用户无法查看所有内容,并且在 ListView 中滚动包含那么多项目将非常乏味。如果是我,我会问一些问题:
更多关于 ListView http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ http://developer.android.com/guide/topics/ui/binding.html http://www.androidguys.com/2008/07/14/fancy-listviews-part-one/
【讨论】:
Integer.MAX_VALUE,因为它的大部分功能都依赖于int position。
【讨论】:
我创建了一个 ListView 并使用 Integer.MAX_VALUE 作为返回给适配器的列表中项目数的数字。这对 ListView 的性能没有影响,尽管它拥有大约 20 亿个项目。
我认为 10k 可以工作:P
在此处查看我的答案以详细了解我的意思:How to create a closed (circular) ListView?
【讨论】:
您有内存限制(特定于设备)。只要您不耗尽内存限制,您就可以存储任意数量的项目。您可以使用 ADT 工具随时监控应用程序使用的内存量。
【讨论】: