android - 处于滚动模式时通知 RecyclerView 适配器的问题
问题描述
我在 Recyclerview 中有项目列表。应用程序中有一个用于特定类型数据的切换按钮。
在 Switch Click 上,我正在调用特定服务和在 recyclerview 中设置的新数据。
上面的事情工作正常,但是当我在滚动 recyclerview 或当我的 recyclerview 处于滚动模式时执行相同操作时,出现以下错误:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{9dea1e position=24 id=-1, oldPos=-1, pLpos:-1 no parent} androidx.recyclerview.widget.RecyclerView
解决方案
最后使用以下步骤解决。
必须清除以前的数据。
必须通知适配器。
如果使用分页,则必须将必要的值存储为默认值。
在新的 api 调用之前完成如下操作:
if (mAlList != null) {
mAlList.clear()
}
if(mAdapterList!=null)
{
mAdapterList!!.notifyDataSetChanged()
}
isScrolling=false
page = 1
limit = 20
isLoadMore = false
推荐阅读
- javascript - 状态未出现、更新或从语义传递给复选框的值
- computer-vision - 如何在多张图片中检测到相同的对象但方向不同(与方向的余弦相似度)
- webpack - Nuxt 生成带有最终随机哈希的 img
- python - 比较文件中的 2 个列表并将结果保存在另一个文件中
- spring-boot - 图像路径在springboot中不起作用
- variables - Ansible:配置 nginx 角色以使用从变量读取的自定义端口
- python - python中的等高线图与X轴上的时间
- jwt - 如何在 nuxt 中存储解码 JWT 的数据?
- wpf - Wpf menuitem 可见性只是第一次调用
- sql - 如何获取表中所有相关的父子记录?