欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

项目BUG日志-Recyclerview篇

程序员文章站 2022-05-14 21:18:16
...

时间:2018年2月4日

bug描述  :  因项目需要,需要做一个带有头的列表视图,我采用的recycleview,将第一个条目当头,然后获取列表数据,将数据装入集合后,调用了

notifyItemRangeInserted(position, collection.size());
当列表没有数据,只显示头的时候,这个时候是没有bug的,当列表有数据程序就崩溃了,并报了错:

项目BUG日志-Recyclerview篇

于是我查看了这个方法的源码:

项目BUG日志-Recyclerview篇

意思是 我传的这个 child view 是一个还没有解除绑定的view , 我通过日志发现这个viewholder 就是recyclerview 的头,

通过分析我猜测应该是 加入数据,刷新那句代码出了问题, 

notifyItemRangeInserted(position, collection.size());
这句代码只会刷新我给定的范围,那么就会将头排除在外,这样在adpter和viewholder 显示的时候,就会显示这个view仍然保留着以前的状态,就是这个flag 仍然是绑定状态;

解决的方案也很简单,把范围刷新 换成 

adapter.notifyDataSetChanged();
再次运行,问题得到解决.

相关标签: recyclerview