0

我已经实现了我的ViewHolder模式adapter,我在其中ImageView填充了一个远程图像,问题是当我滚动时,我总是在得到正确的图像之前得到一个错误的图像(在几毫秒之后),我想这是因为当前视图是以前膨胀的视图,但我没有看到任何可能的解决方案

if (rowView == null) {
       rowView  =   mInflater.inflate(R.layout.layout, parent, false);
       ViewHolder viewHolder                =   new ViewHolder();
       viewHolder.imageView     =   (ImageView)  rowView.findViewById(R.id.image);

       rowView.setTag(viewHolder);
}

ViewHolder viewHolder = (ViewHolder) rowView.getTag();

viewHolder.imageView.setImageResource(0);
imageLoader.DisplayImage(URL, viewHolder.imageView);

谢谢

4

2 回答 2

3

您的代码似乎走在了正确的轨道上。唯一的问题是它imageView.setImageResource(0)似乎没有清除图像,至少在我运行 kitkat 的 Nexus 5 上。

相反,也许尝试

imageView.setImageDrawable(new ColorDrawable(android.R.color.transparent));

或者甚至将ImageView's可见性设置为INVISIBLE.

于 2014-07-24T14:58:49.560 回答
0

当您在 中创建行时,使用 URL 字符串getView调用并删除当前存在的任何图像。当图像完成加载后,在你设置它之前,调用它并检查 URL 是否仍然匹配。setTagImageViewImageViewgetTag

于 2014-07-24T14:50:13.267 回答