转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10116095.html

我们为了移除RecycleView的某一项,会用RecycleView的notifyItemRemoved(int position)方法,但是需要注意的是:
1、用该方法之后并不会刷新Item,也就是说不会重新bind数据,那么position也就没有刷新,每个Item对应的position还是原来的那个,那就会有问题,比如现在只剩下3个Item,而我们点击删除最后一个Item的时候,它的position是原来的position4,那么实际上就是调用RecycleView的notifyItemRemoved(4),就会出现越界。

那我们该怎么做呢?
1、删除之后重新:notifyDataSetChanged();,但是这样就没有删除动画。

2、使用notifyItemRangeChanged(int positionStart, int itemCount)

这个方法,是通知所有观察者: 从positinStart开始的itemCount这些个item已经改变了,与notifyItemRangeChanged(position, itemCount, null)等价

positionStart : 是从界面哪个位置的Item开始变化,比如你点击界面上的第二个ItemView positionStart是1
itemCount : 是已经发生变化的item的个数(包括自己,即正在点击这个),比如,你点击界面上的第二个ItemView,position [1,9] 发生变化,共计9个,因此我们计算是list.size() - position 
此时使用:
notifyItemRemoved(position);
notifyItemRangeChanged(position, mList.size() - position);
注意如果有headView的话还需要将position加上对应的headView数目,比如有一个headView,那么就需要:
notifyItemRemoved(position + 1);
notifyItemRangeChanged(position + 1, mList.size() - position);
 

 

转载于:https://www.cnblogs.com/tangZH/p/10116095.html

RecycleView的notifyItemRemoved使用注意相关推荐

  1. RecycleView Layout 详解

    前提 我们以RecycleView 的宽高都是Match_Parent作为前提去分析,这样onMeasure方法就不会调用dispatchStep1.dispatchStep2.我们只看onLayou ...

  2. RecycleView 缓存原理解析

    前言 下面让我们剖析一下RecycleView 缓存原理. RecycleView 缓存类型 缓存容器 需要创建布局 需要重新绑定 存入时机 取出时机 mAttachedScrap 否 否 Recyc ...

  3. 循环视图——RecycleView

    RecycleView的常用方法 setAdapter  设置列表的适配器,适配器采用 RecycleView.Adapter; setLayoutManager  设置列表的的布局管理器,包括线性布 ...

  4. listview 和RecycleView区别

    RecyclerView和ListView之间的区别 在我们要搞清楚一个问题之前,首先要搞清楚为什么,是什么, 最后才能得出结论 一:为什么会出现recycleView RecyclerView并不会 ...

  5. RecycleView 二级列表(多级列表)

    RecycleView实现二级列表(可以实现多级列表) RecyclerView做的二级列表比官方的ExpandableListView二级列表效率高一些貌似 1.自己的Adapter继承Recycl ...

  6. 【转载】RecycleView使用详解

    原文链接:https://blog.csdn.net/u012721519/article/details/54692366 一.RecycleView简要介绍 RecycleView是support ...

  7. 3.2.1 一篇文章完全掌握 RecycleView 的六大用法

    点此进入:从零快速构建APP系列目录导图 点此进入:UI编程系列目录导图 点此进入:四大组件系列目录导图 点此进入:数据网络和线程系列目录导图 一.RecycleView 简介 (1)RecycleV ...

  8. RecycleView小结

    RecycleView是Android 5.0,推出的一款替代Listview   GridView的控件 A flexible view for providing a limited window ...

  9. RecycleView相关面试题

    讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView.缓存的是什么?cachedView会执行onBindView吗? RecyclerView预取机制 如 ...

最新文章

  1. 计算体系结构的演进规律
  2. 成为优秀程序员应该具备的8个特质
  3. 数据导入导出、备份恢复
  4. 如何“暴力破解”Oracle性能优化的极端问题(附精彩案例解读)
  5. python设计模式(二十二):策略模式
  6. Android中JNI编程出现“Invalid arguments ' Candidates are: void * malloc(?) '”的解决方案
  7. 删除mysql数据库_安装/删除MySQL数据库
  8. 打印显示服务器存储空间不足,服务器存储空间不足,无法处理此命令。 ID 2019 或 2020...
  9. echarts官网文档打开慢的解决方法
  10. 【Unity3D插件】DoTween插件(三)
  11. 工业相机基本参数以及选型参考(二)
  12. 计算机怎么复制公式,excel怎么复制公式 -电脑资料
  13. stm32智能小车设计(1)——硬件选型思路
  14. Redis 从入门到弃坑
  15. 解决winscp只能下载,无法上传的问题
  16. 在计算机时代初期,程序员是如何编程的?
  17. C语言:company
  18. [Android/安卓]Google登录接口之Api接入
  19. 以quot;小刀会“的成败论当今创业成败
  20. java-php-python-ssm-网络学习平台-计算机毕业设计

热门文章

  1. 设计模式之代理模式(Proxy Pattern)
  2. python 之路,Day11 (下)- sqlalchemy ORM
  3. Linux 终端命令行提示符的艺术--PS1进阶
  4. 最经典的计算机网络新书推荐--计算机网络(第5版)Tanenbaum著中文版上市
  5. 考察新人的两道c语言题目
  6. asp.net 入门的五个步骤
  7. 使请求管线内的所有模块尽可能高效
  8. python3编写简易统计服务器
  9. 海思3559A上编译FFmpeg源码操作步骤
  10. CUDA Samples: image normalize(mean/standard deviation)