场景:收藏列表(RecyclerView),点击Item上的取消收藏按钮可删除该Item,带移除动画,当Item从满屏删除到不满屏的临界时刻,移除动画消失,会闪屏。
分析:
①取消收藏会调用notifyItemRemoved(position);
②满屏到不满屏临界时刻,会重新发起该页请求,请求完成时使用了notifyDataSetChanged()
怀疑是 notifyItemRemoved动画尚未完成,紧接着notifyDataSetChanged刷新所致,于是把刷新数据改成notifyItemRangeChanged(0,list.size())。
试了一把,确实不闪屏了。
结论:以后遇到RecyclerView带动画删除时候,重新请求数据刷新记得使用notifyItemRangeChanged(),这样动画会按次序完成,而不是被notifyDataSetChanged粗暴的覆盖掉。