1.ListView和RecyclerView的adapter在刷新上方法的不同:

  • notifyItemChanged(int position) 更新列表position位置上的数据
  • notifyItemInserted(int position)列表position位置添加一条数据,有动画效果
  • notifyItemRemoved(int position)列表position位置移除一条数据,有动画效果
  • notifyItemMoved(int from,int to)列表from位置的数据移动到to位置
  • notifyItemRangeChanged(int start,int count)列表从start开始,count个数数据进行刷新
  • notifyItemRangeInserted(int start,int count)列表从start开始,添加数量count个数据,有动画效果
  • notifyItemRangeRemoved(int start,int count)列表从start开始,移除数量count个数据,有动画效果

2.本次问题:recyclerView使用notifyDataSetChanged()刷新时出现图片闪烁

原因:notifyDataSetChanged()会导致整个itemView刷新,已经测试:相同position刷新其itemView是不同的对象,

例如,刷新后,position为12的用了position为13的itemView,再次刷新时,又用了position为10的itemView,这样每次position

上对应的itemview的imageView就会在重设size时发生闪烁,

解决方法:

用notifyItemRangeInserted()进行增加数据使用的局部刷新,这样原先的itemView就不会重绘

或者用notifyItemRangeChanged()进行单纯的局部刷新

注意:虽然方法是用来局部刷新的,但我们可以把局部刷新变成全部刷新,itemcount设置成list.size()就可以实现不闪烁的全部

刷新了,但最好加上一句

((SimpleItemAnimator)recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);

这句话会取消recyclerview的动画效果,不然刷新的话的确不会快闪但会有个动画效果,体验也是不好的.

最后解决:

1.recyclerView调用方法取消动画效果

((SimpleItemAnimator)recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);

2.刷新列表使用

adapter.notifyItemRangeChanged(0,list.size()) 进行全部刷新

RecyclerView用notifyDataSetChanged()刷新时候的图片闪烁相关推荐

  1. android点赞刷新列表图片闪烁,RecyclerView使用——有效解决刷新数据错乱,图片闪烁,OOM问题...

    做项目时,用到RecyclerView去加载1w张图片,为了防止OOM,需要进行分页预加载;这些完成后测试发现刷新recyclerView会造成数据错乱,在查阅资料得到一下的解决方法. 根据网上资料: ...

  2. RecyclerView中notifyDataSetChanged刷新总结

    除了adapter.notifyDataSetChanged()这个方法之外,新的Adapter还提供了其他的方法,如下: public final void notifyDataSetChanged ...

  3. recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...

    最近遇到了RecyclerView  在执行notifyDataSetChanged操作时会出现闪屏,图片刷新,然后根据网上资料提示使用 修改动画,设置动画时间 recyclerView.getIte ...

  4. RecyclerView 刷新Item图片闪烁

    RecyclerView 刷新Item图片闪烁 在项目开发过程中,我们可能会用到RecyclerView来加载列表数据.而数据又离不开需要加载图片. 我们在加载图片的框架时,常用的也是glide pi ...

  5. android 解决listview.notifyDataSetChanged刷新时Imageloader加载图片闪烁问题

    今天,简单讲讲android里再listview调用notifyDataSetChanged刷新界面时,Imageloader加载图片会闪烁的问题. 最近,发现app里的listview图片会出现闪烁 ...

  6. android局部动态刷新,RecyclerView的局部刷新爬坑之路简述

    RecyclerView的局部刷新爬坑之路简述,实际上RecyclerView做局部刷新是非常容易的,其实就是使用好带payload参数的这个notifyItemRangeChanged方法,以及ov ...

  7. RecyclerView调用notifyDataSetChanged()不起作用

    背景 上周,之前的一个朋友发消息给我,RecyclerView的notifyDataSetChanged()方法没有用.心里一想,自己之前不就是这么用的么.但是好像脑海里有看到过也有人遇到了类似的问题 ...

  8. 绘制GIF图片闪烁问题!

    关于JAVA 绘制图片闪烁问题,在网上可以找很多多的答案,解决的办法就是 1. 重载JAVA组件的update()方法: 2. 使用双缓冲机制: 今天我要说的是碰到绘制GIF图片(从我们客户案例中提出 ...

  9. android notifydatasetchanged 不起作用,RecyclerView调用notifyDataSetChanged()不起作用

    背景 上周,之前的一个朋友发消息给我,RecyclerView的notifyDataSetChanged()方法没有用.心里一想,自己之前不就是这么用的么.但是好像脑海里有看到过也有人遇到了类似的问题 ...

最新文章

  1. R假设检验之Jarque-Bera检验(Jarque-Bera Test)
  2. axis WebServices 完美调用天气预报,查询、显示 代码!
  3. web 表单,脚本验证
  4. 前端js vue遇到的一些简单的数据处理-持续更新
  5. 【1】MySQL的四种事务隔离级别
  6. 特征计算 - 遍历求值提速 6 万倍 lambda...if...else(if...else...) +map() 对比 iterrows() - Python代码
  7. [2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 论文简析
  8. Linux常用命令 一
  9. Spring boot傻瓜教程(一):官方加强版,避开坑
  10. 计算DataTable某列的值(SUM)
  11. SQLite剖析之事务处理技术
  12. 在myeclipse上设置 SVN过滤上传的文件类型
  13. 小学计算机课教师教学笔记,小学信息技术教师教育随笔
  14. Java入门第三季—简易扑克牌游戏
  15. ubuntu16 下安装 dnw 给开发板传输文件,出现的问题以及解决方法
  16. HTML页面只能使用微信浏览器打开
  17. Android VR 全景图
  18. 【黑马程序员】《Java基础入门》——02 面向对象
  19. 项目管理 之七 SSH、GPG 密钥生成步骤、部署 Github、Gitee 及使用效果
  20. android 更改浏览器默认主页

热门文章

  1. day1-python猜单词游戏
  2. ThinkPHP模版引擎之变量输出详解
  3. 人工智能,达尔文进化论
  4. Keras教程:使用Keras开始深度学习和Python(上)
  5. c语言余弦定理float,余弦相似度公式
  6. 618战局天猫聚焦“商家体验”,创造确定性增长是核心目标
  7. ai怎么渐变颜色_AI里面怎么弄渐变色,哪位高手指点下啊?
  8. Android小红书发帖api接口,小红书Android客户端演进之路
  9. 技术出身能做好管理吗?——能!
  10. XX健康:移动端开发-体检预约验证码30秒倒计时短信验证码获取与验证DatePicker日历展示提交预约复杂流程阿里短信工具类