当前位置: 首页 > article >正文

Android:动态去掉RecyclerView动画导致时长累加问题解决

遇到问题以及探索修改的过程:

正常情况下,不设置动画,默认是用DefaultItemAnimator

在这种情况下,我有个需求需要有特殊的几个item的notifyItemChanged或notifyItemInserted或其他局部刷新的通知不要动画。

聪明的你一下就想到了在notifyItemChanged前mRecyclerView.setItemAnimator(null),完了之后再设置回DefaultItemAnimator,运行查看,很好,没有效果。这是因为设置完动画是需要时间的。再修改一下mRecyclerView.setItemAnimator(null)之后把notifyItemChanged放到mRecyclerView.post里面去做,效果是有了。

但是,再多notifyItemChanged几次,你会发现,这个mRecyclerView.post等待的时长会越来越长,这个时长一直在累加的。

网上还有一种方法,不去设置mRecyclerView.setItemAnimator(null),而是使用DefaultItemAnimator的setSupportsChangeAnimations(false);方法,可以使notifyItemChanged没有动画,但是这种方式也会使这个时长累加。

查遍全网,貌似没有人有遇到这种情况?

修改为使用notifyDataSetChanged通知所有数据更新不存在累加的情况,但是会重新刷新所有item以及item会闪烁一下。

使用DefaultItemAnimator的setChangeDuration(0),你会发现,欸,时长没有累加了,只是偶尔会闪烁一下。

接下来就是处理这个闪烁现象。

原本动画是会使o


http://www.kler.cn/a/466359.html

相关文章:

  • java.lang.Error: FFmpegKit failed to start on brand:
  • Python入门教程 —— 模块和包
  • 在线二维码生成器-GO在线工具-文本工具
  • SpringBoot中实现拦截器和过滤器
  • Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析|数据分享...
  • 【Go学习】-01-2-常见类型及关键字
  • 【蓝桥杯比赛-C++组-经典题目汇总】
  • cka考试-03-k8s版本升级
  • SpringBootWeb案例-2
  • 图形 3.5 Early-z和Z-prepass
  • Mysql监视器搭建
  • FPGA、STM32、ESP32、RP2040等5大板卡,结合AI,更突出模拟+数字+控制+算法
  • 仓储机器人底盘的研究
  • 在Microsoft Windows上安装MySQL
  • 2025年第五届控制理论与应用国际会议 | Ei Scopus双检索
  • 「Mac畅玩鸿蒙与硬件53」UI互动应用篇30 - 打卡提醒小应用
  • Chapter2 文本规范化
  • #C02L02P01. C02.L02.一维数组最值问题.知识点1.求最大值
  • Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue智慧养老医护系统(高质量源码,提供文档,免费部署到本地)【提供源码+答辩PPT+文档+项目部署】
  • unity学习2:关于最近github的2FA(two-factor authentication)新认证
  • 深入理解正则表达式及基本使用教程
  • 图像转换 VM与其他格式互转
  • CLIP论文笔记
  • 2025年度全国会计专业技术资格考试 (甘肃考区)报名公告
  • 从 SQL 到 SPL:分组后每组前面增加符合条件的记录