RecyclerView 、 Adapter、ViewHolder

RecyclerView

我们需要CrimeListFragment向用户展示crime列表,这就要利用RecyclerView类。 RecyclerView是ViewGroup的子类,每一个列表项都是作为一个View子对象显示的。 这些View子对象既可以是复杂的View对象,也可以是简单的View对象,这取决于我们列表显示复杂度的需要。

RecyclerView只创建刚好充满屏幕的12个视图,而不是100个视图。用户滑动屏幕切换视图时 上一个视图会被回收利用。

顾名思义,RecyclerView所做的就是回收利用,混环往复。

ViewHolder

ViewHolder只做一件事:容纳View视图 典型例子如下:

 
public class ListRow extends RecycleView.ViewHolder{
    public ImageView mThumbnail;
   
    public ListRow(View view){
        super(view);
        mThunbnail=view.findViewById(R.id.thumbnail);
    }
   
}

创建ListRow来获取自定义的mThumbnail和RecyclerView.ViewHolder超类传入的itemView。 ViewHolder为itemView而生;它引用这我们传递给super(view)的整个视图

使用实例

     ListRow row=new      ListRow(inflater.inflater(R.layout.list_row,parent,false));
    View view=row.itemView;
    ImageView thumbnailView=row.mThumbnail;

RecyclerView自身不会创建视图,它创建adapter,adapter创建ViewHolder。 ViewHolder引用这一个个视图对象。

Adapter

adpter是个控制器对象,从模型层获取数据,然后提供给RecyclerView显示,起到了沟通桥梁的作用。 adapter负责: 1、创建必要的ViewHolder; 2、绑定ViewHoldr至模型层数据;