错误堆栈

java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView.............layout:androidx.recyclerview.widget.GridLayoutManager@ca48e86, context:..........@a799d74at androidx.recyclerview.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2880)at androidx.recyclerview.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:5281)at androidx.recyclerview.widget.RecyclerView$AdapterDataObservable.notifyChanged(RecyclerView.java:11997)at androidx.recyclerview.widget.RecyclerView$Adapter.notifyDataSetChanged(RecyclerView.java:7070)
......
at android.os.Handler.handleCallback(Handler.java:938)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:240)at android.app.ActivityThread.main(ActivityThread.java:8000)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:603)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

报错代码

在RecyclerView中抛异常的地方
在RecyclerView进行数据更新的时候,会进行判断当前RecyclerView是否正在布局遍历或者滚动,如果是就抛出异常

isComputingLayout方法

这个方法用来判断RecyclerView当前是否在计算布局,这段注释的意思是:

返回RecyclerView当前是否正在计算布局。
如果此方法返回true,则意味着RecyclerView处于锁定状态
尝试更新适配器内容将导致异常,因为适配器内容
当RecyclerView尝试计算布局时,无法更改。
您的代码不太可能在这种状态下运行
当发生布局遍历或RecyclerView开始滚动时,由框架调用
响应系统事件(触摸、可访问性等)。
如果您有一些自定义逻辑来更改中的适配器内容,则可能会发生这种情况
对视图回调(例如焦点更改回调)的响应
布局计算。在这些情况下,您应该使用Handler或类似的机制。
返回true,如果RecyclerView当前正在计算布局,false否则

注释里面说,在这种情况下应该使用Handler来处理

mLayoutOrScrollCounter这个变量注释
意思是

在dispatchLayout和/或滚动期间,此变量递增。
在这些期间不应调用某些方法(例如适配器数据更改)。
这样做会导致很难找到bug,所以我们最好检查一下并抛出异常。
参见#assertInLayoutOrScroll(字符串)
参见#assertNotInLayoutOrScroll(字符串)

所以这个变量大于0就表示RecyclerView当前正在布局或滚动。

解决办法

综上所诉,当出现这个异常的时候,应当把数据更新的代码放在handler中。

new Handler(Looper.getMainLooper()).post(new Runnable() {@Overridepublic void run() {mAdapter.notifyDataSetChanged();}});

RecyclerView状态异常Cannot call this method while RecyclerView is computing a layout or scrolling相关推荐

  1. Android之提示Cannot call this method while RecyclerView is computing a layout or scrolling

    1 问题 java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layo ...

  2. Android Recycleview的 RecyclerView is computing a layout or scrolling解决方案

    背景: 我们在做数据列表的时候,RecycleView 需要搭配RecycleView.Adapter来使用,当数据发生改变,我们可以通过adapter.notifyDataSetChanged()来 ...

  3. 采购订单的审批状态异常的处理,审批状态为:预审批或是处理中的单据

    针对采购订单的审批状态异常的处理,审批状态为:预审批或是处理中的单据 可删除最后一次审批历史 select hr.name, poh.segment1, poh.org_id from po_head ...

  4. SQLServer镜像状态异常排查

    title: SQLServer · CASE分析 · 镜像状态异常排查 author: 天铭 问题 用户实例的某个DB一直处于Synchronizing无法达到SYNCHRONIZED状态,用了很多 ...

  5. soul显示服务器异常,soul账号状态异常是什么意思?soul账号异常操作多久解封

    soul是一款很受欢迎的灵魂社交app,用户在soul可以结交志趣相投的朋友,还可以发广场动态,不过有的朋友可能会因为一些原因导致账号异常,那么soul账号状态异常是什么情况呢?soul异常操作行为暂 ...

  6. soul服务器不稳定,soul聊天状态异常 消息发送失败

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. soul聊天状态异常,消息发送失败的原因及解决方法如下: 1.发不出消息(显示红色感叹号),一般是由于网络不稳定,建议更换网络或者 ...

  7. soul显示服务器异常,soul聊天状态异常 消息发送失败

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. soul聊天状态异常,消息发送失败的原因及解决方法如下: 1.发不出消息(显示红色感叹号),一般是由于网络不稳定,建议更换网络或者 ...

  8. 咕咕机显示服务器请求异常,咕咕机云服务器状态异常

    咕咕机云服务器状态异常 内容精选 换一换 如果对弹性云服务器执行重启/关机操作,弹性云服务器长时间(大于30分钟)处于"正在重启"/"正在关机"状态时,建议执行 ...

  9. DNS知识点及服务搭建案例和解析状态异常

    概念 DNS (Domain Name System)域名解析服务器 linux 常用软件 BIND:另译 Berkeley Internet Name Domain 作用: 通过将主机名(FQDN ...

最新文章

  1. 损失函数的可视化:浅论模型的参数空间与正则
  2. poj2186(强连通分量分解)
  3. 1.6 课程资源-深度学习-Stanford吴恩达教授
  4. 思科查看服务器启动配置文件,启动配置检查UCS
  5. JavaScript内存管理
  6. 过滤 php 网址,php过滤html中的其他网站链接的方法(域名白名单功能)
  7. Android 系统(199)---Android事件分发机制详解
  8. BZOJ1018 堵塞的交通(线段树)
  9. font-spider(字蛛) 让页面引入中文web字体
  10. javaweb 锐浪报表导出文件,并上传服务器解决方案
  11. CSS三大特性(层叠/继承/优先)
  12. UWA DAY 2021 精彩盘点 | 35场技术议题掀起的思维浪潮
  13. 木讷的程序员需要知道的事情 (六)
  14. 修复计算机系统还原,怎么给电脑系统做一键恢复
  15. 松原计算机等级考试试题,2019年上半年吉林省松原市计算机等级考试注意事项...
  16. mysql把表里是时间加8小时_mysql经典的8小时问题-wait_timeout
  17. matlab针对电阻和电源电动势为r1,第三章 电力电子与MATLAB应用技术
  18. python pty模块 - 作用1 - 虚拟一个串口
  19. 李乐园:iMetaLab Suite宏蛋白质组学数据分析与可视化(视频+PPT)
  20. Shortest Path(翻译)

热门文章

  1. Python:次方计算
  2. 浙大毕业演讲 --- 马一浮
  3. 常用的logo设计技巧
  4. 奇异值分解的几何原理
  5. Miles to go ... - Arun Gupta: Securing WebSocket using wss and HTTPS/TLS (Tech T
  6. 页面可视化搭建工具业界的轮子
  7. CSDN线上竞赛第52期题解
  8. antv G6 + react umi(vue,ng) 实现节点红点(badges)
  9. 神级软件—uTinyRipper
  10. M - windy数