【发布时间】:2012-08-11 06:35:26
【问题描述】:
这不是什么大问题,但看起来很奇怪。在列表或网格视图中,我延迟加载图像(例如从远程位置加载)。我正在使用 convertView 回收这些物品。当我快速向下滚动时,我看到旧图像重复出现,直到获取正确的图像并替换它们。
有没有办法改变这种情况?例如,我尝试在 getView() 的一开始(在初始化 convertView 之后,如有必要),将 imageView 可见性设置为 GONE。并在获取图像后设置为VISIBLE。但由于某种原因,这不起作用(看起来仍然一样)。
谢谢!
编辑:我什至不确定这是否是使用回收视图时的正常行为,或者我做错了什么。当互联网连接速度很快或从文件系统获取时,它看起来不像是一个错误。然后新图像加载速度非常快,用户不会看到重复的项目。但在网速较慢的情况下,它看起来像一个错误。
【问题讨论】:
-
向我们展示您的适配器的代码。它可以通过在每次调用 getView() 时开始实际加载之前简单地将图像设置为 null 来解决。
-
但这不就像设置为
GONE吗?我做了一个测试,在启动线程之前,我在getView()开始时将所有内容设置为GONE,但没有任何改变(不明白为什么,但这就是我在设备上看到的......)。我会发布一些示例代码。 -
Agh...愚蠢的我;PI将它们设置为
GONE,但经过一些其他操作后,在开始获取过程之前再次将它们设置为VISIBLE...再次格式化stackoverflow的代码回答我的一个问题... -
太棒了!很高兴你解决了它:-)
标签: android listview gridview recycle