RecyclerView.ViewHolder、Adapter
用户 滑动屏幕切换视图 时, 上一个视图会回收 利用, RecyclerView 所做的就是 回收再利用 ,循环往复。
首先, 调用Adapter.getItemCount() 方法,RecyclerView 询问 数组列表中 包含多少个待展示的视图 。
接着,RecyclerView 调用Adapter.onCreateViewHolder(ViewGroup, int)创建ViewHolder 。
最后,RecyclerView会 传入ViewHolder及其位置 , 调用onBindViewHolder(ViewHolder, int) 方法。Adapter会找到目标位置的 数据 并将其 绑定到ViewHolder的视图上 。
需要注意的是相对于onBindViewHolder(),onCreateViewHolder()方法调用并不频繁。 一旦有了够用的ViewHolder ,RecyclerView就会 停止调用onCreateViewHolder() 方法。随后,它会 回收利用旧的ViewHolder 以节约时间和内存。
ViewHolder承载 的是每一个 列表项的视图 ,所以当使用RecyclerView的时候 需要先 对ViewHolder 进行初始化定义 。
注意到CrimeHolder构造器方法 调用了父类构造器super(View view)----ViewHolder(View view) 。因而CrimeHolder实际上引用了已被实例化的list_item_crime布局的视图,且同时这个 视图被赋给了父类变量itemView ,我们可以在itemView变量处获得该视图。
当需要显示新 创建 的 ViewHolder 或让 数据和已创建的ViewHolder关联时 ,就 会用到Adapter 。在Adapter中 通常需要实现3个方法: