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);}// 绑定数据到ViewHolderpublic 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可以高效地管理和展示列表项。