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默认不支持

你可能感兴趣的:(Android,Framework,android)