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

文章介绍了在图库搜索界面使用RecycleView时遇到的问题,即点击空格导致图片闪烁两次。这可能是由于notifyDataSetChanged操作引起的。解决方案包括重写Adapter的getItemId方法以返回稳定ID,并设置Adapter的hasStableIds属性为true,以提高视图匹配的效率,减少不必要的闪烁现象。
摘要由CSDN通过智能技术生成

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

  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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值