Android:RecyclerView相关

匿名 (未验证) 提交于 2019-12-03 00:03:02

关键类:

  • Adapter:负责数据的绑定
  • LayoutManager:负责item的布局
    1. 协助RecyclerView完成OnMeasure过程
    2. 通过onLayoutChildren完成对子View的布局
    3. 滚动子视图
    4. 滚动过程中判断何时添加View,何时回收View,也是对缓存时机的判断
  • ItemDecoration:添加分割线,做一些装饰
  • RecyclerView:view类,控制缓存
    1. mChangedScrap(屏幕内缓存),数据已变的,在每次view绘制时用到
    2. mAttachedScrap(屏幕内缓存),未与RecyclerView分离的,在adapter.notifyxxx时用到
    3. mCachedViews(屏幕外缓存),ViewHodler缓存列表,默认容量为2,在放不下的时候放入缓存池
    4. ViewCacheExtension,开发中可以自定义的一层缓存
    5. RecycledViewPool,缓存池,SparseArray<ArrayList<ViewHolder>> mScrap,存入的时候会清除状态,所以再从中取出来的时候需要重新绑定。
  • ItemAnimator:负责tem的动画

一些可优化操作:

  • 添加Header、Footer(可通过装饰者模式)
  • 下拉加载更多
  • Item点击事件
  • Item中控件局部刷新
    1. notifyItemChanged(position,payLoads) 通过此方法进行刷新
    2. onBindViewHolder(holder,position,payLoads) 重新此方法,设置新的数据到view
  • 列表过度绘制
  • 插入、删除等不要全局刷新
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!