四、notifyDataSetChanged时导致图片闪烁
这个问题比较好解决,一句代码,
mRecyclerViewAdapter.setHasStableIds(true);
- 1
要注意,使用上述代码的话,Adapter中的getItemId要重写成如下,如果仍用super.getItemId(position),数据刷新会出错。
@Override
public long getItemId(int position) {
return position;
}
- 1
- 2
- 3
- 4
从源码角度来看,相当于我们平时给ImageView和图片做了一个tag绑定,检测到是url没变时,不再重新加载图片,也就不用重新计算、绘制,这样就避免了图片闪烁