参考文章:
1. RecyclerView
2. ListView和RecyclerView的使用和区别
3. RecyclerView和ListView的区别
4. RecyclerView实现多种item布局
5. 关于RecyclerView的连环炮(视频)
目录
1、为什么RecycleView需要用到适配器呢,你对适配器的理解是什么?
答:适配器是将UI与控件加载和滑动业务逻辑进行解耦。
2、RecyclerView一屏加载的个数是怎么确定的,它是做到不显示的Item缓存到内存中?
答:在onLayout填充过程中,每填充一个Item,那它的bottom都会加上一个Item的高度,直到bottom的值大于等于屏幕的高度,填充完毕。
3、RecyclerView的复用机制,简单说说view回收与复用的过程
答:RecyclerView架构中核心组件
- 回收池:能回收任意Item控件,并返回符合类型的Item控件;比如onBinderViewHolder方法中的第一个参数是从回收池中回收的。
- 适配器:Adapter接口,经常辅助RecyclerView实现列表展示;适配器模式,将用户界面展示与交互分类。
- RecyclerView:是做触摸事件的交互,主要实现边界值判断;根据用户的触摸反馈,协商回收池对象与适配器对象之间的工作。
RecyclerView中的第一屏加载:
RecyclerView中的第二屏加载:
回收池回收策略
上图中ImageView、TextView、LinearLayout对应的是一个个栈数组结构。
回收池填充策略
4、RecyclerView支持多个不同类型布局,他们怎么缓存,并且查找的呢?
答:回收池中有不同类型的集合
回收池中提供get、set方法,并提供type值索引进行查找。
三、说一说RecyclerView适配器的原理
四、理清RecyclerView架构思想,手写RecyclerView自定义控件
滚动永远是用第一次点击点 减去 第二次点击点的坐标。如果相减之后,x为负值,则向右滚动,y为负值则向下滚动。