RecyclerView.ViewHolder、Adapter
1.用户滑动屏幕切换视图时,上一个视图会回收利用,RecyclerView所做的就是回收再利用,循环往复
ViewHolder
ViewHolder的主要任务:容纳View视图。
Adapter
Adapter从模型层获取数据,然后提供给RecyclerView显示,是沟通的桥梁。Adapter主要的任务是:创建ViewHolder和将模型层的数据绑定到ViewHolder上。
2.RecyclerView与Adapter交互流程
3.首先,调用Adapter.getItemCount()方法,RecyclerView询问数组列表中包含多少个待展示的视图。
接着,RecyclerView调用Adapter.onCreateViewHolder(ViewGroup, int)创建ViewHolder。
最后,RecyclerView会传入ViewHolder及其位置,调用onBindViewHolder(ViewHolder, int)方法。Adapter会找到目标位置的数据并将其绑定到ViewHolder的视图上。
需要注意的是相对于onBindViewHolder(),onCreateViewHolder()方法调用并不频繁。一旦有了够用的ViewHolder,RecyclerView就会停止调用onCreateViewHolder()方法。随后,它会回收利用旧的ViewHolder以节约时间和内存。
4.LayoutManager
RecyclerView不会亲自摆放屏幕上的列表项,摆放列表项的任务被委托给了LayoutManager。除了在屏幕上摆放列表项,LayoutManager还负责定义屏幕滚动行为。
除了一些Android系统内置版实现,LayoutManager还有很多第三方库实现版本。