RecyclerView用notifyDataSetChanged()刷新时候的图片闪烁
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()刷新时候的图片闪烁相关推荐
- android点赞刷新列表图片闪烁,RecyclerView使用——有效解决刷新数据错乱,图片闪烁,OOM问题...
做项目时,用到RecyclerView去加载1w张图片,为了防止OOM,需要进行分页预加载;这些完成后测试发现刷新recyclerView会造成数据错乱,在查阅资料得到一下的解决方法. 根据网上资料: ...
- RecyclerView中notifyDataSetChanged刷新总结
除了adapter.notifyDataSetChanged()这个方法之外,新的Adapter还提供了其他的方法,如下: public final void notifyDataSetChanged ...
- recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...
最近遇到了RecyclerView 在执行notifyDataSetChanged操作时会出现闪屏,图片刷新,然后根据网上资料提示使用 修改动画,设置动画时间 recyclerView.getIte ...
- RecyclerView 刷新Item图片闪烁
RecyclerView 刷新Item图片闪烁 在项目开发过程中,我们可能会用到RecyclerView来加载列表数据.而数据又离不开需要加载图片. 我们在加载图片的框架时,常用的也是glide pi ...
- android 解决listview.notifyDataSetChanged刷新时Imageloader加载图片闪烁问题
今天,简单讲讲android里再listview调用notifyDataSetChanged刷新界面时,Imageloader加载图片会闪烁的问题. 最近,发现app里的listview图片会出现闪烁 ...
- android局部动态刷新,RecyclerView的局部刷新爬坑之路简述
RecyclerView的局部刷新爬坑之路简述,实际上RecyclerView做局部刷新是非常容易的,其实就是使用好带payload参数的这个notifyItemRangeChanged方法,以及ov ...
- RecyclerView调用notifyDataSetChanged()不起作用
背景 上周,之前的一个朋友发消息给我,RecyclerView的notifyDataSetChanged()方法没有用.心里一想,自己之前不就是这么用的么.但是好像脑海里有看到过也有人遇到了类似的问题 ...
- 绘制GIF图片闪烁问题!
关于JAVA 绘制图片闪烁问题,在网上可以找很多多的答案,解决的办法就是 1. 重载JAVA组件的update()方法: 2. 使用双缓冲机制: 今天我要说的是碰到绘制GIF图片(从我们客户案例中提出 ...
- android notifydatasetchanged 不起作用,RecyclerView调用notifyDataSetChanged()不起作用
背景 上周,之前的一个朋友发消息给我,RecyclerView的notifyDataSetChanged()方法没有用.心里一想,自己之前不就是这么用的么.但是好像脑海里有看到过也有人遇到了类似的问题 ...
最新文章
- R假设检验之Jarque-Bera检验(Jarque-Bera Test)
- axis WebServices 完美调用天气预报,查询、显示 代码!
- web 表单,脚本验证
- 前端js vue遇到的一些简单的数据处理-持续更新
- 【1】MySQL的四种事务隔离级别
- 特征计算 - 遍历求值提速 6 万倍 lambda...if...else(if...else...) +map() 对比 iterrows() - Python代码
- [2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 论文简析
- Linux常用命令 一
- Spring boot傻瓜教程(一):官方加强版,避开坑
- 计算DataTable某列的值(SUM)
- SQLite剖析之事务处理技术
- 在myeclipse上设置 SVN过滤上传的文件类型
- 小学计算机课教师教学笔记,小学信息技术教师教育随笔
- Java入门第三季—简易扑克牌游戏
- ubuntu16 下安装 dnw 给开发板传输文件,出现的问题以及解决方法
- HTML页面只能使用微信浏览器打开
- Android VR 全景图
- 【黑马程序员】《Java基础入门》——02 面向对象
- 项目管理 之七 SSH、GPG 密钥生成步骤、部署 Github、Gitee 及使用效果
- android 更改浏览器默认主页
热门文章
- day1-python猜单词游戏
- ThinkPHP模版引擎之变量输出详解
- 人工智能,达尔文进化论
- Keras教程:使用Keras开始深度学习和Python(上)
- c语言余弦定理float,余弦相似度公式
- 618战局天猫聚焦“商家体验”,创造确定性增长是核心目标
- ai怎么渐变颜色_AI里面怎么弄渐变色,哪位高手指点下啊?
- Android小红书发帖api接口,小红书Android客户端演进之路
- 技术出身能做好管理吗?——能!
- XX健康:移动端开发-体检预约验证码30秒倒计时短信验证码获取与验证DatePicker日历展示提交预约复杂流程阿里短信工具类