已经阅读了很多问题,并且如何更新ListView
或RecyclerView
(notifyItemChanged(position)
)的一行,我有更多的&#34 ;嵌套"问题:
我的自定义RecyclerView
ImageRecycler
包含几个CardView
个。在这些卡片视图中,我们可以找到ProgressBar
和ImageView
。
逻辑:我在其他地方打开一个文件选择器,选择一个图像,在新添加的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"留下来的形象?