RecyclerView - 再次绑定视图持有者

RecyclerView - bind the view holders again

TL,DR: 我怎样才能强制回收器视图再次调用 onBindViewHolder 方法,至少对于可见项目?

调用notifyDataSetChanged()会使列表延迟几毫秒,有没有更好的方法? 谢谢。

我有一个带有 ImageView 的布局。 每当为图像视图调用绑定时,我都会向服务器发送请求以获取图像。 加载图像时,我将位图保存在 ViewHolder 的 T 变量中。 在绑定方法中,我检查 variable.getBitmap() 是否为 null,如果是,我将设置 imageview。 现在,如果我滚动我的列表,图像将被加载,但如果没有,图像视图仍然是空白的,因为没有再次调用 onBindViewHolder。

谢谢。

notifyDataSetChanged()绝对是正确的方法。也许 notifyItemChanged() 更好,因为它只绑定所选项目。如果我答对了你的问题,那么你似乎在主线程上做了一些不应该在那里做的事情。请记住:永远不要在主线程上执行可能冗长的操作,但始终使用 AsyncTask.

之类的东西

我认为异步下载图像然后缓存它是一种更好的方法,因此您不必在每次回收 View 时都下载它。有它的库。

在加载图片时,您可以显示 ProgressBar 或其他提示用户图片正在加载的内容。