Android:RecyclerView相关

本文深入解析了RecyclerView的工作原理,包括Adapter的数据绑定、LayoutManager的item布局、ItemDecoration的装饰效果、ItemAnimator的动画实现,以及缓存机制的优化策略。探讨了如何通过自定义ViewCacheExtension和RecycledViewPool来提升性能,并提供了添加Header、Footer、下拉加载更多、Item点击事件及局部刷新的优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键类:

  • 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
  • 列表过度绘制
  • 插入、删除等不要全局刷新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值