RecyclerView如何使用正确notifyItemRemoved

关于RecyclerView如何使用正确notifyItemRemoved,有一些坑必须要填,直接调用

   data.remove(posiiton);
   notifyItemRemoved(position);

position的位置回错乱, onBindViewHolder不会调用,所以必须加上notifyItemRangeChanged才行

public void removeItem(int position){
   data.remove(posiiton);
   notifyItemRemoved(position);
   notifyItemRangeChanged(position, data.size() - position);
}



@Override
public void onStart() {
    super.onStart();
    Window window = getDialog().getWindow();
    WindowManager.LayoutParams windowParams = window.getAttributes();
    windowParams.dimAmount = 0.0f;
    windowParams.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND;
    window.setAttributes(windowParams);

}

这里有个比较详尽的测试demo,测试了几个刷新的notify,可做参考。
RecyclerView正确使用notify(notifyItemRemoved,notifyItemChanged,notifyItemRemoved,notifyItemInserte...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容