项目用到的一个功能,有一个隐藏按钮,点击会隐藏列表里一些符合条件的项,我出现的问题是:
当不隐藏时正常,当我隐藏符合条件的项之后,滑动会导致闪退,调试报错是下标越界。
最后发现我的错误是在适配器 Adapter 的 getItemCount() 方法中,我的适配器中有两个 List, List01用于保存接口返回的全部数据, List02 在每次隐藏/显示全部时从 List01 中拿符合条件的数据,再设置到 Adapter 中,而我的 getItemCount() 方法中返回的是
List01 的大小,所以导致隐藏的时候数据显示正常,但是滑动 recyclerView 预留了空间但是却没有数据,导致下标越界。
总结:getItemCount() 方法返回值决定了 recyclerView 可加载数据的多少。