RecyclerView 缓存机制
分四级
- Scrap
- Cache
- ViewCacheExtension
- RecyclerViewPool
它缓存的是ViewHolder,不同于 ListView中的RecyclerBin,
RecyclerBin中的scrapViews和activeViews缓存的是View.
Recycler中,mScrap和mCache的两级缓存分别存放的是 显示的ViewHolder,和移出屏幕的viewHolder,mScrap表示活动在屏幕上的item,mCache表示移出屏幕的itemview。
这两级缓存对应的是数据的position,根据position从缓存列表里把viewholder取出来。
而下面的RecyclerViewPool则根据的是viewType.
如果这两级缓存没有找到,还有ViewCacheExtension和RecyclerViewPool两个缓存去查找,如果还是没有,那就走oncreateViewHolder.
而ViewCacheExtension这一级的缓存是需要由开发者自己定义,可以自己实现是根据viewType还是position来存取itemview(不是viewHolder)
几个RecyclerView的优化
- 5.0之后加入的RenderThread,解放了UI 线程专注于与用户交互逻辑,RenderThread机制在RecyclerView 中实现了Prefetch的功能,将DrawFrame交给RenderThread运行,UI Thread在此期间可以空闲,也可以预取下一个item,或者可以做动画过程。但setInitialPrefetchItemCount这个方法只有LinearLayoutManager可用。
- RecyclerView.setHasFixedSize(true),这个api的使用是在,当数据集的改变不影响recyclerview的宽高时,不需要重新requestLayout(具体什么情况?比如不可见item?)
转载于:https://juejin.im/post/5c347d72e51d4551e533cdb2
RecyclerView 缓存机制相关推荐
- RecyclerView缓存机制(回收些啥?)
这是RecyclerView缓存机制系列文章的第二篇,系列文章的目录如下: RecyclerView缓存机制(咋复用?) RecyclerView缓存机制(回收些啥?) RecyclerView缓存机 ...
- RecyclerView缓存机制(scrap view)
这是RecyclerView缓存机制系列文章的第四篇,系列文章的目录如下: RecyclerView缓存机制(咋复用?) RecyclerView缓存机制(回收些啥?) RecyclerView缓存机 ...
- RecyclerView缓存机制
1. ViewHolder 1.1 作用 ViewHolder是对RecyclerView上的ItemView的封装,它是RecyclerView缓存的载体.它封装了以下属性: View itemVi ...
- 【腾讯Bugly干货分享】Android ListView与RecyclerView对比浅析--缓存机制
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d... 作者:黄宁源 一,背景 RecyclerView是谷歌官方出的一 ...
- recyclerview item点击无效_让你彻底掌握RecyclerView的缓存机制
点击上方蓝字关注 ?? 来源:肖邦kakahttps://www.jianshu.com/p/3e9aa4bdaefd 前言 RecyclerView这个控件几乎所有的Android开发者都使用过(甚 ...
- RecyclerView详解一,使用及缓存机制
本文大致会先讲解RecyclerView的基础知识及使用,最后会深入讲解一点原理.当然,本人知识水平有限哈,太深入的东西我现在还没接触到,还请大家包容,阿里嘎多~ 一.RecyclerView的历史与 ...
- 一篇文章搞定《RecyclerView缓存复用机制》
一篇文章搞定<RecyclerView缓存复用机制> 前言 零.为什么要缓存 一.RecyclerView如何构建我们的列表视图 二.缓存过程 三.缓存结构 1.mChangedScrap ...
- Android Glide图片加载框架(三)缓存机制
文章目录 一.缓存简介 二.缓存用法 内存缓存方式 磁盘缓存方式 三.缓存KEY 四.内存缓存 内存缓存流程 五.磁盘缓存 磁盘缓存流程 Android Glide图片加载框架系列文章 Android ...
- delphi listview 添加数据 慢_ListView 的缓存机制
一.前言 ListView 作为一个 Android 5.x 之前的一个用于显示数据列表的控件,或许在今天都已经被 RecyclerView 完全替代,但是其中的缓存机制仍然值得我们去了解,对后面学习 ...
最新文章
- 一起学WP7 XNA游戏开发(八. 让3d model动起来)
- 【观点】互联网抑或使人更愚蠢
- bzoj 1632: [Usaco2007 Feb]Lilypad Pond【bfs】
- [转帖]Ubuntu 对应内核版本
- 我是一位老师,讲课是我的乐趣,可是……
- css 控制图片最大宽度
- android与js交互
- Android坑点-ByteBuffer.array() 入过坑吗
- linux iis 环境配置教程,Linux系统Java环境配置教程
- python读取txt文件每一行_Python3基础 file for+list 读取txt文本 并 一行一行的输出(低效率)...
- TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下跌1.33%
- socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
- Corosync与Pacemaker实现nfs作为共享存储的MySQL高可用
- 1432: 【蓝桥杯】:剪格子(迷宫问题变体)
- PyTorch 入坑八:卷积与转置卷积
- MySQL从入门到精通详细教程
- 红外遥控器解码串口输出模块结合51单片机+oled屏幕实现遥控器红外解锁( STC89C52RC)
- 如何把html网页共享文件夹,如何将文件夹共享 设置共享文件夹教程【详细介绍】...
- snapchat注册不到_如何将链接添加到您的Snapchat快照
- Flex TLF 相关知识