我有一个
ImageView,其中使用Glide加载图像.当我执行类似操作时,然后使用notifyItemChanged(position)通知回收器视图适配器.它会使图像闪烁2次.
有人能帮我一下吗.
调用notifyItemChanged(position)时执行这部分代码:
Glide.with(mContext)
.load(mainImage)
.placeholder(R.color.grey_light)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(listItemHolder.mSingleAttachmentImage);
提前致谢.
最佳答案 我认为图像的眨眼是由RecylerView的ItemAnimator引起的.我遇到了同样的问题,我通过添加默认动画师并告诉回收者视图重新使用视图持有者来解决动画问题.像这样的东西:
theRecyclerView.setItemAnimator(new DefaultItemAnimator() {
@Override
public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder) {
return true;
}
@Override
public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, @NonNull List<Object> payloads) {
return true;
}
});
通过这种方式,RecyclerView可以使用相同的ViewHolder,并且在调用notifyItemChange时不会创建另一个ViewHolder.