gpt4 book ai didi

java - listview回收早了吗?还是 Universal ImageLoader 错误地取消了?还是我的逻辑错了?

转载 作者:行者123 更新时间:2023-11-29 09:01:58 26 4
gpt4 key购买 nike

https://github.com/nostra13/Android-Universal-Image-Loader

除了 ListView 中的第一个项目取消了其图像加载任务外,它工作得很漂亮。

它表示 当图像加载任务被取消时被调用,因为图像的 View 在新任务中被重用

然而,既然 View 仍然清晰可见,那么这个 View 不应该被回收吗?我正在使用 convertView。

    @Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (getItemViewType(position) == HAS_IMAGE)
{

if (convertView == null)
{
convertView = li.inflate(R.layout.item_update_pic, null);
new UpdateWithImageWrapper(convertView, position); // this is where views are looked up and set
}
((UpdateWithImageWrapper) convertView.getTag()).setMyData(data.get(position), position); // this is where the correct data is set to the views and images are set to be loaded
}
else
{
if (convertView == null)
{
convertView = li.inflate(R.layout.item_update, null);
new UpdateNoImageWrapper(convertView, position);
}
((UpdateNoImageWrapper) convertView.getTag()).setMyData(data.get(position), position);
}
return convertView;
}

有没有人有解决办法?

编辑:只是想补充一点,我的所有 ListView 都有问题。

使用 ImageLoader 1.8.4

也许有办法阻止 ListView 如此快速地回收?

最佳答案

我终于找到了真正的答案。在我的 ImageLoadingListener()

    @Override
public void onLoadingCancelled(String imageUri, View view) { }

我将图像设置为表示加载错误的图像。事实证明,如果我在调用此方法时不更改图像,那么一切正常。

所以对我来说真正的问题是当onLoadingCancelled方法被调用时,图片已经被加载了,在这里设置imageview为代表取消的图片覆盖了真实图片的成功加载。

关于java - listview回收早了吗?还是 Universal ImageLoader 错误地取消了?还是我的逻辑错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com