现象
使用notify刷新全部不会闪,但是notify刷新一条会闪
这个根本问题是notify的时候回触发recyclerview的更新动画,有三种解决方法。
解决方案
A. 设置不支持change动画
((SimpleItemAnimator)recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
设置change动画为false,动画就不显示了。闪烁也会小时
B. 设置动画时间为0
recyclerView.getItemAnimator().setChangeDuration(0);
C.使用notify(item,payloads)方法
public final void notifyItemChanged(int position, @Nullable Object payload) {
mObservable.notifyItemRangeChanged(position, 1, payload);
}
使用这个不会重构当前页面,只要根据payload更改需要更改的view就行