gpt4 book ai didi

android - 当在 ListView 中滚动更新数据更改为以前的数据

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

在 ListView 中,我有图像、文本和包含默认图像的图像,在图像上我有一个下载按钮。当列表加载并下载完成时,一切正常,但是当我滚动 list-view 时,图像只是变成了静态图像。

最佳答案

发生这种情况是因为在 ListView 中, View 被回收。一旦你滚动,显示出来的 View 就会被回收并在另一行中重复使用,从而导致图像困惑等......

您必须在适配器中使用 ViewHolder 模式来处理此问题。将您所有的 View 添加到您的 viewholder 对象并使用它们来设置图像、文本等...这将停止您想要的效果。

参见:https://dzone.com/articles/optimizing-your-listview教程

另见:https://developer.android.com/training/improving-layouts/smooth-scrolling.html从谷歌获取详细信息。

注意:如果您从 Internet 下载图像,则需要缓存机制或使用 Picasso、Fresco... 或此类库来处理缓慢收敛到正确图像的问题。

我建议图书馆的原因如下:

1) 当你滚动时,图像将再次进入网络下载,同时你的静态占位符将出现。下载您的图像需要一段时间。此外,除非您实现自己的自定义缓存机制,否则它将始终去下载图像。

2) 当您滚动时,即使 View 不在显示范围内,您生成的下载线程也会继续运行。

3) 我提到的库会自行处理缓存...当您的 View 离开屏幕时它们会取消请求...它们会自行处理垃圾回收...

关于android - 当在 ListView 中滚动更新数据更改为以前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694492/

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