滑行显示旧的加载的图像,而不是新的

时间:2019-07-12 18:58:13

标签: android android-recyclerview glide

使用 Glide ,我可以从URL加载图像,下面的代码可以正常工作,我唯一的问题是当我更快地滚动RecylerView时,我会再次看到旧的加载的图像原始图像的图像,在1或2秒后(取决于互联网连接),一切都会恢复正常

当我打开应用程序时(滚动前):

enter image description here

当我(水平)滚动时,看到的是相同的加载图像,但是1或2秒钟后图像变为正常状态:

enter image description here

   void onBindView(int position) {
        imgframe.setImageBitmap(null);
        final String s = spacecrafts.get(position);
        Glide.with(c).asBitmap().load(s).apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL))
                .into(new CustomTarget<Bitmap>() {
                    @Override
                    public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                        img.setPadding(0, 0, 0, 0);
                        img.setImageBitmap(bitmap);
                        img.setScaleType(ImageView.ScaleType.CENTER_CROP);
                        imgframe.setImageBitmap(resource);
                        progress.setVisibility(View.GONE);
                    }

                    @Override
                    public void onLoadCleared(@Nullable Drawable placeholder) {

                    }
                });
    }

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

这就是RecylerViews工作的方式。他们被回收。在加载新图像之前,旧图像一直显示...一种解决方法是立即放置一个占位符图像,而新图像通过网络传输。

答案 1 :(得分:0)

我遇到了同样的问题,要使用占位符修复它。

Glide.with(myViewHolder.context).load(myUri).placeholder(R.drawable.loading_image).into(myViewHolder.image);