RecyclerView 更新单个item时,闪烁问题的处理

最近在做一个计时的项目,全局监听计时状态,那计时列表也需要实时更新,但是在更新,调用timeAdapter.updateItem(item);时,发现item在不停的闪烁,添加tag也不起作用。

后来看源码在知道,闪烁的原因就是onBindViewHolder的重复调用。而tag不起作用的原因则是每次更新都会使用一个新的holder。使用新的holder的原因则是RecyclerView默认有一个新旧两个状态的过渡动画,使用这个动画才会有新的holder出现。

原因已经知道了,解决办法肯定是有的,只要为RecyclerView加上下面的代码:


recyclerView.setItemAnimator(null);

这样就可以避免新holder的生成,从而避免item闪烁。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,417评论 25 709
  • 一、概述 对于RecyclerView的学习,主要是需要掌握以下几点: 数据:Adapter 使用:Recycle...
    泽毛阅读 12,117评论 1 23
  • 1.前言 最近将Glide3.8升级到4.0,除了使用上有细微的调整,过渡还是很流畅的。但是在替换完,并体验到新特...
    lanceJin阅读 14,663评论 8 24
  • 卢德分子(Luddites)可以从黑胶唱片、明信片以及胶卷的收藏中获得慰藉。纸质书同样也会存活下去,但它在文化中的...
    c20a4720441b阅读 1,014评论 0 0
  • 夜晚的星星静谧的闪耀着,空气异常的清冷,远处一个身影慢慢的走过来,他的脚步沉重的迈着。 他目光呆滞双眼无神,仿佛看...
    枫丹白露苏眉鱼阅读 1,852评论 0 1