You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RecyclerView滚动图片错乱:空URL项显示其他项图片求助

解决RecyclerView滚动图片错乱问题
  • 核心原因是RecyclerView的ViewHolder复用机制,加上Glide未正确处理空URL场景,导致旧的加载请求或已加载的图片残留到复用的Item上。

具体修复步骤:

  1. 绑定ViewHolder时,先清除ImageView之前的Glide加载请求,避免旧请求覆盖当前设置
  2. 显式判断图片URL是否为空/Null,针对性处理:
    • 空URL时直接设置占位图(或清空ImageView)
    • 有效URL时再执行Glide加载

修改后的代码示例:

// 先清除之前的加载任务,防止复用ViewHolder时旧请求干扰
Glide.with(context).clear(imgMovie)

val imageUrl = rideData.driver.image_with_url
if (imageUrl.isNullOrEmpty()) {
    // URL为空时直接设置占位图
    imgMovie.setImageResource(R.drawable.placeholder)
} else {
    Glide.with(context)
        .load(imageUrl)
        .placeholder(R.drawable.placeholder)
        .circleCrop()
        .into(imgMovie)
}

额外注意点:

  • 确保在Paging3的Adapter(或原生Adapter)的onBindViewHolder中,每次绑定都严格使用当前Item的rideData,不要依赖ViewHolder的缓存状态
  • 如果你之前没有手动处理空URL,Glide遇到空URL时不会主动清除ImageView已有的内容,复用旧ViewHolder时就会显示之前加载的图片,多次滚动后所有Item都被复用一遍,就会出现“所有项都显示图片”的情况

内容的提问来源于stack exchange,提问作者Flutter Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:07:39