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

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

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

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


recyclerView.setItemAnimator(null);

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

你可能感兴趣的:(RecyclerView 更新单个item时,闪烁问题的处理)