2012-08-14 20 views
1

这不是一个大问题,但它看起来很奇怪。在列表或gridview中,我会加载延迟的图像(例如,从远程位置加载)。我正在使用convertView回收这些项目。当我快速向下滚动时,我会看到重复的旧图像,直到获取正确的图像并将其替换。旧物品可见一段时间,在listview或gridview中回收时

有没有办法改变它?例如,我尝试在getView()(在初始化convertView之后,如有必要)的最开始处设置imageView的可见性为GONE。取出图像后设为VISIBLE。但由于某种原因,这不起作用(仍然看起来一样)。

谢谢!

编辑:我甚至不确定这是使用循环视图时的正常行为,还是我做错了什么。当互联网连接速度快,或者从文件系统中获取时,它看起来不像一个错误。然后新图像加载非常快,用户看不到重复的项目。但是,在一个缓慢的互联网连接,它看起来像一个错误。

+1

向我们展示适配器的代码。每次调用getView()时,只需将图像设置为null,然后再开始实际加载,就可以修复它。 – 2012-08-14 22:09:37

+0

但是这不是将它设置为'GONE'吗?在开始线程之前,我做了一个测试,在getView()开始时将所有内容都设置为'GONE',并且没有任何变化(不明白为什么,但这正是我在设备上看到的...)。我会发布一些示例代码。 – Ixx 2012-08-14 22:13:26

+0

Agh ...愚蠢的我; PI将它们设置为'GONE',但在一些其他操作之后,在开始取回过程之前将它们再次设置为'VISIBLE' ...再次格式化stackoverflow的代码回答了我的一个问题... – Ixx 2012-08-14 22:22:18

回答

0

在设置图像行之前,只检查图像是否属于视图内容。

我有相同的问题回来,我不得不改变我的图片下载,以便它需要图像网址以及元数据,所以一旦下载完成,我可以比较元数据与视图的数据。

+0

但图像设置在正确的地方。问题在于android会回收视图,并且*在设置图像时显示旧回收视图的内容。 – Ixx 2012-08-14 21:57:52

相关问题