最近开发使用Glide加载图片到RecyclerView的item中的ImageView,发现重新刷新时每个ImageView都会闪烁一下
在网上找了很多解决方案:
1.更改RecyclerView中的 DefaultItemAnimator 类中的 animateChangeImpl() 方法,去掉透明度变化
然后再将更改好的类设置给RecyclerView
发现没什么用
2.更改RecyclerView的动画时间为0
首先说明上面两种方式都是更改RecyclerView的动画,这个动画是针对整个item的,对图片单独加载没啥用,至于别人为什么可以生效,咱才疏学浅,搞不懂
3.更改Glide的加载,把跳过内存缓存的选项去掉,或设为false,以及加上不需要动画
发现也没什么用,暂时没弄懂为啥,毕竟这个dontAnimate()的源码我还没看,不知道原理和干啥用的
4.最后发现一篇文章 http://www.cocoachina.com/articles/69689
大致意思就是把设置图片的这个动作自己做,不交给Glide,就解决了闪烁问题,原因可能是Glide在设置图片上加了什么动画或者其他操作吧
来源:oschina
链接:https://my.oschina.net/u/4000302/blog/4793506