RecyclerView是Android框架类,用于显示一个持续更新的项列表。它是一个容器,可以利用回收和重用的视图元素来展示数据。
RecyclerView的工作原理:
当RecyclerView需要展示一个新的项时,它会调用Adapter的onCreateViewHolder()方法来创建一个新的ViewHolder。
ViewHolder包含了要展示的视图(如TextView,ImageView等)。
RecyclerView会重用这些ViewHolder,通过onBindViewHolder()方法来更新它们的数据。
以下是一个简单的RecyclerView.Adapter示例:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private String[] mDataset;
// 创建新的ViewHolder(布局)
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
return new MyViewHolder(v);
}
// 绑定数据到ViewHolder
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.textView.setText(mDataset[position]);
}
// 返回数据项数
public int getItemCount() {
return mDataset.length;
}
// 视图持有者
public static class MyViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public MyViewHolder(View v) {
super(v);
textView = (TextView) v.findViewById(R.id.my_text_view);
}
}
}
在这个例子中,MyAdapter扩展了RecyclerView.Adapter并定义了一个内部类MyViewHolder,它持有对TextView的引用。onCreateViewHolder()方法负责创建新的视图,onBindViewHolder()方法将数据绑定到视图上。getItemCount()返回数据集的大小。这样,RecyclerView可以高效地管理和展示列表项。