Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新

2019-12-10 18:08:37于海丽

4. 自定义Adapter

RecyclerView.Adapter包含了一种新型适配器,其实与以前我们使用的适配器基本类似,只是稍微有所不同,比如viewholder它帮我们封装好了,不用像以前使用listview的适配器一样自己去写viewholder了。

Item视图如下:

Android,RecyclerView

实例代码如下:

public class RecyclerAdapter extends RecyclerView.Adapter {

 private List<Model> models;

 public RecyclerAdapter(List<Model> models){
  this.models = models;
 }

 class ViewHolder extends RecyclerView.ViewHolder{

  private ImageView picture;
  private TextView title,text;

  public ViewHolder(View itemView) {
   super(itemView);

   picture = (ImageView) itemView.findViewById(R.id.picture);
   text = (TextView) itemView.findViewById(R.id.text);
  }

  public ImageView getPicture(){
   return picture;
  }

  public TextView getTitle(){
   return title;
  }

  public TextView getText(){
   return text;
  }
 }

 @Override
 public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view,null));
 }

 @Override
 public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {

  final ViewHolder vh = (ViewHolder) holder;
  vh.getPicture().setImageResource(models.get(position).getPicture());
  vh.getTitle().setText(models.get(position).getTitle());
  vh.getText().setText(models.get(position).getText());
 }

 @Override
 public int getItemCount() {
  return models.size();
 }
}

5. LayoutManager有什么作用

由于RecyclerView已经不单单像以前ListView或者GridView一样,它被作为ListView和GridView控件的继承者,所以在使用它的时候需要通过设置它的LayoutManager去规定它是哪一种类型,另外也可通过设置LayoutManager去设置它是横向还是纵向的列表,以及是否反转。

纵向列表:(第三个参数是设置是否反转,即滑动方向)