RecyclerView - 再次绑定视图持有者

Bol*_*aul 3 android android-recyclerview

TL,DR:我如何强制再循环视图再次调用onBindViewHolder方法,至少对于可见项?

调用notifyDataSetChanged()会使列表滞后几毫秒,有没有更好的方法?谢谢.

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

谢谢.

rub*_*ees 6

notifyDataSetChanged()绝对是正确的方式.也许notifyItemChanged()更好,因为它只绑定所选项目.如果我的问题是正确的,那么您似乎在主线程上做了一些不应该在那里完成的事情.记住:永远不要在主线程上进行潜在的冗长操作,但总是使用类似的东西AsyncTask.

我认为这是一种更好的方法,可以异步下载图像,然后对其进行缓存,因此每次View回收时都不必下载.有图书馆.

在加载图像时,您可以显示一个ProgressBar或其他信号通知用户的信息,即图像正在加载.