RecycleView闪屏问题(java和ktolin解决)

问题案例:图库搜索界面点击空格,图片会闪烁两次显示 复现概率

  1. 通过布局看是通过RecycleView加载的,通过打印log并无异常
  2. 闪烁是 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)

RecycleView闪屏问题(java和ktolin解决)_第1张图片

你可能感兴趣的:(Android,java,开发语言)