文章目录
- 一、考察的知识点
- 二、RecycleView与ListView的对比
- 2.1 布局效果
- 2.2 Item点击事件
- 2.3 空数据处理
- 2.4 头尾布局
- 2.5 局部刷新
- 2.6 动画效果
- 2.7 缓存机制
- 2.7.1 层级不同
- 2.7.2 缓存内容不同
- 2.7.3 缓存机制
- 2.7.4 ListView与RecyclerView缓存级别的对比
- 2.7.4.1 ListView(两级缓存)
- mActiveViews和mScrapViews
- List获取缓存的流程:
- 2.7.4.2 RecyclerView(四级缓存)
- mAttachedScrap、mCacheViews、mViewCacheExtension、mRecyclerPool
- RecyclerView获取缓存的流程:
- 2.7.4.3 ListView和RecyclerView缓存机制基本一致
- 2.8 嵌套滚动机制
- 2.9 性能
- 三、扩展阅读
一、考察的知识点
RecyclerView
的布局效果、同部刷新、动画效果、缓存知识ListView
的布局效果、局部刷新、动画效果、缓存知识
二、RecycleView与ListView的对比
RecyclerView
和ListView
都是用于加载大量数据的控件,用来实现列表的功能。
接下来我们从布局、局部刷新、动画效果、缓存四个方面对比RecyclerView
和ListView
。
2.1 布局效果
-
ListView:
- 布局比较单一,只有一个纵向效果
-
RecyclerView:
- 提供了更灵活的布局管理器 (
LayoutManager
) 支持,如线性布局 (LinearLayoutManager
)、网格布局 (GridLayoutManager
)、瀑布流布局 (StaggeredGridLayoutManager
) 等,可以实现各种复杂的布局效果。
在
RecyclerView
中,可以用LayoutManager
自定义效果:canScrollHoriz
- 提供了更灵活的布局管理器 (