0

我仍在努力寻找在我的列表视图中获得更好性能的方法。我在 Google I/O 2009 视频中看到的一件事是使用 ViewHolder 的性能。

http://www.youtube.com/watch?v=N6YdwzAvwOA

正如您在 12:00 分钟看到的那样,使用 viewHolder 的性能差异对其他人来说是巨大的。我正在做“愚蠢”的方式,这意味着没有实现 viewHolder 功能。

所以,我试了一下。

如果没有 viewHolder,我会在 3 秒内在我的列表视图中加载 20 个项目(其中包含一个小图像、标题、描述和价格(ImageView、TextView、TextView、TextView))。

我用相同的对象成功地实现了方法 viewHolder 并且......在列表视图中加载 20 个项目时,我也得到了 3 秒。

我希望将这个时间减少到至少一半。

你们有什么感想?正常吗?

4

1 回答 1

2

ViewHolder 在首次加载时不会提高加载速度,它会提高滚动速度。即使使用 ViewHolder,在某些情况下您也必须使用 findViewById 方法。因为它仅在您重用视图并仅编辑其内容时才能提高性能。图像/文本和东西。

是的,它不会加快您的通货膨胀/加载速度是正常的。为了改善加载,您将不得不使用不同的技术:)

您如何为您的视图提供数据?您在滚动时是否在 UIThread 上做某种“繁重的工作”?

于 2013-10-14T09:11:45.957 回答