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

来源:互联网 发布:淘宝店铺搜索页装修 编辑:程序博客网 时间:2024/05/17 00:13

情景描述

1、调用mAdapter.notifyItemChanged(position);时,会重复加载图片,出现占位图等。
2、根据tag标记判断是否加载,不起作用。

原因

重复加载的原因就是onBindViewHolder的重复调用。而tag不起作用的原因则是每次更新都会使用一个新的holder。使用新的holder的原因则是RecyclerView默认有一个新旧两个状态的过渡动画,使用这个动画才会有新的holder出现。

解决办法

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

mRecyclerView.setItemAnimator(null);

就可以避免新holder的生成,所以tag也就用了作用。
在stackoverflow上有人提出类似问题

0 0
原创粉丝点击