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

RecycleView小结

RecycleView四级缓存

  • 一级缓存:用于存放当前屏幕可显示区域的ViewHolder,目的是为了方便更新数据,以及对View操作时更加快捷
  • 二级缓存:用于缓存最近滑动出屏幕的ViewHolder,目的是为了当用户将该View滑出屏幕外时又突然滑回来时能够快速显示,最多能缓存2个ViewHolder,不需要重新绑定数据,只有当postion相同时才能匹配上
  • 三级缓存:用户自定义的缓存,一般比较少用上
  • 四级缓存:用于缓存其他滑出屏幕外的ViewHolder,每种类型的ViewHolder最多5个

RecycleView缓存过程

  1. 新添加的View默认会进入一级缓存
  2. 当往上滑出屏幕时,会从一级缓存进入二级缓存中
  3. 当二级缓存满了2个时,会把最早进入二级缓存的ViewHolder移动到四级缓存中
  4. 当屏幕填满View继续往上滑动时,会先从二级缓存中查找,如果没有的话会从四级缓存中,最后还是没有就直接new一个新的并放入一级缓存中

RecycleView和ListView对比

  • RecycleView缓存的是ViewHolder,而ListView缓存的是View
  • RecycleView有四级缓存,而ListView只有两级缓存,分别相当于RecycleView的一级和四级缓存
  • RecycleView支持局部更新,而ListView默认不支持
  • RecycleView将布局分离,使用LayoutManager管理布局,并且支持扩展,而ListView默认只支持纵向布局
  • RecycleView支持View动画,ListView默认不支持
原文地址:https://blog.csdn.net/guangdeshishe/article/details/129963061
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/6614.html

相关文章:

  • 深度解析 Python 网络框架:Django、Tornado、Flask 和 Twisted
  • Taro+react 开发第一节创建 带有redux状态管理的项目
  • 【Docker项目实战】使用Docker部署Typemill轻量级平面文件CMS
  • OpenPCDet从环境配置到模型训练
  • 【SOC 芯片设计 DFT 学习专栏 -- RTL 中的信号名和 Netlist 中的信号名差异】
  • 系统思考与因果智慧
  • php+微信小程序 websocket
  • C/C++每日一练(20230403)
  • 【数据库管理】⑥日志挖掘LogMiner
  • 图像镶嵌拼接
  • ToBeWritten之MIPS汇编基础铺垫
  • aspnet030高校学生团体管理系统sqlserver
  • 夜天之书 #80 推特开源算法与开放革命
  • RocketMQ消息ACK机制及消费进度管理
  • Linux——控制启动过程(更改root密码)
  • springcloud整合knike4j聚合微服务接口文档
  • 蓝桥杯 路径
  • 2.11 循环赛日程表
  • 编译与链接相关知识
  • 推荐一款强大的OCR工具
  • Golang电脑上怎么下载-Go安装和环境配置图文教程[超详细]
  • 联想服务器上安装 ffmpeg
  • 照片太大怎么压缩变小一点,分享5个简单方法
  • 组合预测 | Python实现LSTM-XGBoost长短期记忆网络组合极限梯度提升树股票价格预测
  • OJ系统刷题 第一篇
  • leetcode 152 乘积最大子数组