RecyclerView关于notifyItemRemoved的那点小事
发布日期:2021-11-12 07:57:39 浏览次数:28 分类:技术文章

本文共 501 字,大约阅读时间需要 1 分钟。

原文地址:https://www.2cto.com/kf/201608/534945.html

当我们需要remove掉一条数据(位置在position)时,想要使用RecyclerView的动态效果,就需要调用notifyItemRemoved。但是该方法不会使position及其之后位置的vitemiew重新onBindViewHolder。所以不当使用会导致下标错乱,各种坑爹的bug就来了。

弥补上面的问题,你还需要调用 notifyItenRangeChanged方法,使下面的itemview重新onBind,就可以了。

如下解决:

1
2
3
4
5
6
7
8
public
void
remove(
int
position) {
        
mDataList.remove(position);
        
notifyItemRemoved(position);
        
if
(position != mDataList.size()){
// 如果移除的是最后一个,忽略
            
notifyItemRangeChanged(position, mDataList.size() - position);
        
}
 
    
}

转载地址:https://blog.csdn.net/happy_love1990/article/details/78317304 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:简易音乐播放器,带seekBar,可滑动调节播放进度
下一篇:为RecyclerView添加item的点击事件

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月03日 09时08分49秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

ES6-ES11新特性_ECMAScript相关名词介绍_---JavaScript_ECMAScript工作笔记002 2019-04-26
ES6新特性_let变量声明以及声明特性---JavaScript_ECMAScript_ES6-ES11新特性工作笔记003 2019-04-26
Sharding-Sphere,Sharding-JDBC_介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记001 2019-04-26
Sharding-Sphere,Sharding-JDBC_分库分表介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记002 2019-04-26
C++_类和对象_对象特性_构造函数的分类以及调用---C++语言工作笔记041 2019-04-26
C++_类和对象_对象特性_拷贝构造函数调用时机---C++语言工作笔记042 2019-04-26
C++_类和对象_对象特性_构造函数调用规则---C++语言工作笔记043 2019-04-26
C++_类和对象_对象特性_深拷贝与浅拷贝---C++语言工作笔记044 2019-04-26
AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237 2019-04-26
AndroidStudio_android中实现对properties文件的读写操作_不把properties文件放在assets文件夹中_支持读写---Android原生开发工作笔记238 2019-04-26
弹框没反应使用Looper解决_the caller should invoke Looper.prepare() and Looper.loop()---Android原生开发工作笔记239 2019-04-26
Command line is too long. Shorten command line for Application---微服务升级_SpringCloud Alibaba工作笔记0067 2019-04-26
AndroidStudio_android实现双击_3击_监听实现---Android原生开发工作笔记240 2019-04-26
C++_类和对象_对象特性_初始化列表---C++语言工作笔记045 2019-04-26
AndroidStudio安卓原生开发_UI高级_DrawerLayout_侧滑菜单控件---Android原生开发工作笔记120 2019-04-26
AndroidStudio安卓原生开发_UI高级_Shape的使用_虚线_直线_矩形_渐变_径向渐变_线性渐变_扫描渐变---Android原生开发工作笔记122 2019-04-26
AndroidStudio安卓原生开发_UI高级_StateListDrawable状态选择器_按钮按下和抬起显示不同颜色---Android原生开发工作笔记124 2019-04-26
kivy制作安卓APP--简单音乐播放器 2019-04-26
Angular2工程部署到Tomcat服务器,第一次访问正常,刷新浏览器后报404错误 2019-04-26
【力扣】155. 最小栈 2019-04-26