我有这个问题 - 只是为了测试目的我添加ParseFile
到其中之一ParseObject
从收到的列表中。它不是仅在该行中显示,而是每 4-5 行显示一次,有时更多,有时更少。我怀疑回收观点与此有关。奇怪的是,其他数据(从本示例中删除)可以正常工作position
多变的。
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if(parseList.get(position).get("logo") != null){
ParseFile image = (ParseFile) parseList.get(position).get("logo");
String url = image.getUrl();
Glide.with(context)
.load(url)
.placeholder(R.drawable.piwo_48)
.transform(new CircleTransform(context))
.into(holder.imageView);
}
}
这里的答案是不正确的,尽管它们是在正确的轨道上。
你需要打电话Glide#clear()
,不仅仅是将图像可绘制设置为空。如果你不打电话clear()
,异步加载无序完成仍可能导致视图回收问题。您的代码应如下所示:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (parseList.get(position).get("logo") != null) {
ParseFile image = (ParseFile) parseList.get(position).get("logo");
String url = image.getUrl();
Glide.with(context)
.load(url)
.placeholder(R.drawable.piwo_48)
.transform(new CircleTransform(context))
.into(holder.imageView);
} else {
// make sure Glide doesn't load anything into this view until told otherwise
Glide.with(context).clear(holder.imageView);
// remove the placeholder (optional); read comments below
holder.imageView.setImageDrawable(null);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)