问题案例:图库搜索界面点击空格,图片会闪烁两次显示 复现概率
- 通过布局看是通过RecycleView加载的,通过打印log并无异常
- 闪烁是 notifyDataSetChange 造成的。由于适配器不知道整个数据集中的哪些内容已经存在,在重新匹配 ViewHolder 时发生的。
java解决
1.把adapter中的一个方法重写
@Override
public long getItemId(int position) {
return position;
}
2.配置adapter属性(在给recyclerView设置adapter之前设置才有效果)。
DemoAdapter mAdapter=new DemoAdapter();
mAdapter.setHasStablesId(true);
ktolin解决(实际问题参考Java方式
1.在adapter中重写getItemId()
override fun getItemId(position:Int):Long{
return position.toLong()
}
2.配置adapter属性(在给recyclerView设置adapter之前设置才有效果)。
mAdapter.setHasStablesId(true)