自定义 LinearLayoutManager 的渐进式实现,最终实现一个简单的 LinearLayoutManager(只支持 LinearLayoutManager.VERTICAL 滚动方向)。该工程适合对 LayoutManager 整体流程的学习与理解,整个 LinearLayoutManager 代码分为多份子文件,每个文件都是对前一段代码的补充,方便理解。
实现以下逻辑
- 数据填充只需要填充屏幕范围内的 ItemView
- 回收掉屏幕以外的ItemView
- 屏幕外 ItemView 再回到屏幕后数据需要重新填充
- 对滑动边界边界进行处理
- 对 scrollToPosition 进行支持
- 对 smoothScrollToPosition 进行支持