从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,是support-v7包中的新组件,是一个强大的滑动组件,拥有item回收复用的功能。
1、基本使用
在使用RecyclerView时候,必须指定一个适配器Adapter和适配器需要的数据源、一个布局管理器LayoutManager。
//设置数据源
List data = initData();
RecyclerView rv = (RecyclerView) findViewById(R.id.rv);
//设置布局管理器
rv.setLayoutManager(new LinearLayoutManager(this));
//设置适配器
rv.setAdapter(new NormalAdapter(data));
2、创建适配器
标准实现步骤如下:
① 创建Adapter:创建一个继承RecyclerView.Adapter的Adapter类(VH是ViewHolder的类名)
② 创建ViewHolder:在Adapter中创建一个继承RecyclerView.ViewHolder的静态内部类,记为VH。
③ 在Adapter中实现3个方法:
onCreateViewHolder()
这个方法主要生成为每个Item inflater出一个View,但是该方法返回的是一个ViewHolder。该方法把View直接封装在ViewHolder中,然后我们面向的是ViewHolder这个实例,当然这个ViewHolder需要我们自己去编写。
onBindViewHolder()
这个方法主要用于适配渲染数据到View中,滑动屏幕时,并不是销毁控件,而是修改控件显示的数据,这样效率才高,所以叫RecyclerView。
getItemCount()
这个方法提供总共有多少个条目,RecyclerView对屏幕进行管理,需要知道有多少个条目,这也算是基本要求。
3、基本的Adapter实现
public class NormalAdapter extends RecyclerView.Adapter<NormalAdapter.VH>{
public static class VH extends RecyclerView.ViewHolder{
public final TextView title;
public VH(View v) {
super(v);
title = (TextView) v.findViewById(R.id.title);
}
}
private List<String> mDatas;
public NormalAdapter(List<String> data) {
this.mDatas = da