仅更新一个CardView中的一个元素(Android Recyclerview)

时间:2016-06-22 12:19:54

标签: android image progress-bar android-recyclerview android-glide

已经阅读了很多问题,并且如何更新ListViewRecyclerViewnotifyItemChanged(position))的一行,我有更多的&#34 ;嵌套"问题:

我的自定义RecyclerView ImageRecycler包含几个CardView个。在这些卡片视图中,我们可以找到ProgressBarImageView

逻辑:我在其他地方打开一个文件选择器,选择一个图像,在新添加的CardView中开始显示/淡入它2秒钟,同时我也将它上传到服务器。所以在我的图像动画期间,我也希望更新上传进度。对于上一次说,我使用LocalBroadcastReciever来电notifyItemChanged(position)

要加载ImageView,我使用Glide在我的适配器中加载异步图像:

            File f = new File(entries.get(position).getFilePath());
            Glide
                    .with(main)
                    .load(f)
                    .diskCacheStrategy(DiskCacheStrategy.RESULT)
                    .crossFade(2000)
                    .into(holder.iv1);

导致我的问题:

图像正在上传,通知方法调用了几次,上传了ProgressBar(yay!),但也让Glide一次又一次地重新加载图像,因此屏幕开始闪烁。

我第一次尝试动画图像,之后,我只调用我的视图持有者来设置已加载的图像:

holder.iv1.setImageBitmap(entries.get(position).getBitmap());

但是这使我的RecyclerView滚动非常摇摇欲坠。

那么我如何只刷新ProgressBar作为CardView的一部分,但允许" old"留下来的形象?

0 个答案:

没有答案