ScrollView与ListView性能

时间:2014-10-07 21:57:34

标签: android listview scrollview

我有这种情况我想讨论:

我有一个列表视图,它的目的是显示25个商店。 对于我想要的设计:

2个布局,第一个布局: 商店的一张大照片(从数据库下载)。 如果商店属于评级最高的商店列表(该图标在我的应用上),则为1个图标 1 textview(下载字符串)

第二个: 3篇textviews。(下载字符串)

Everytextview有自定义字体。

正如您可以想象的那样,这对每个项目来说都是一项艰巨的任务。

我的主要问题是:

如果我下载了所有内容而不是制作列表视图,我是否会获得更好的性能?我会使用这些数据填充滚动视图?

创建布局可能需要更多一些,但可能是滚动更顺畅或者我错了?

3 个答案:

答案 0 :(得分:5)

您可以对ListView执行相同的操作(下载所有内容并显示),但我不认为“下载所有内容”实际上会带来任何性能改进(除非您谈论缓存)。

ScrollView将导致更糟糕的内存性能,因为您必须一次创建并保留25个视图。相反,ListView在滚动时重复使用相同的视图,这将导致创建大约与屏幕上相同的视图。

使用ScrollView,如果数据集发生变化,您必须以某种方式重新填充25个视图。在最坏的情况下,重新创建所有视图。

此外,与ScrollView一起,你必须同时处理内存中的25张大照片,这可能会让你做几天的噩梦。

答案 1 :(得分:1)

根据我的经验,如果列表中的元素数量少于50且布局没有使用太多内存,那么最好使用滚动视图。

ListView是为更大的数据集而设计的,它旨在减少内存使用而不是性能。谷歌投入大量工作来优化其性能。与视图模式和现代硬件一起,感知性能接近完全填充的scrollview。

但是,如果数据集足够小而不影响内存使用,为什么需要Listview呢?由于谷歌进行了潜在的时髦优化,ListView与精美动画相结合时使用起来很棘手。

答案 2 :(得分:0)

我从类似的问题中学到的是,滚动视图比列表视图更顺畅。我的情况是选择一个用于导航抽屉,因为抽屉中的平稳充气和滚动会直接影响用户体验。 我首先采用了listview,但它并不顺利。然后我发现发现here谷歌开发人员使用scrolview而不是listview为抽屉工作顺利。 但是如果列表项的延迟加载是你需要的(不是我的情况),那么你应该去列表视图。