RecyclerView基础使用

  1. 添加依赖
compile 'com.android.support:recyclerview-v7:25.3.0'
  1. 创建bean对象

这里的bean对象可以写成两个部分,一部分表示原始数据,一部分在RecycelView进行显示。
这样说可能有点抽象,举个例子说明。我需要显示如图的样式:


我创建两个bean对象,一个用于数据的传递,一个在adapter中用于item的显示。InfoBean用于控制数据。ItemHolder用于显示数据
代码请参考:
infoBean对象如下:

package com.hut.reoger.studentsrecycleview.bean;

/**
 * Created by 24540 on 2017/3/28.
 */

public class InfoBean {
    private int id;
    private String title;
    private String content;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

ItemHolder代码如下:


public class ItemHolder extends RecyclerView.ViewHolder{
    public ImageView imageView;
    public TextView teTitle;
    public TextView teContent;


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

        imageView = (ImageView) itemView.findViewById(R.id.item_image);
        teTitle = (TextView) itemView.findViewById(R.id.item_title);
        teContent = (TextView) itemView.findViewById(R.id.item_content);
    }
}

这里需要记住的是,这个类需要继承ViewHolder。当然,这个类写在adapter中也完全是ok的。

  1. 创建adapter对象
    详细参照例子,这里提出要点:
  • 继承RecyclerView.Adapter
  • 实现继承的方法。
  • 利用onCreateViewHolder方法创建ViewHolder
  • 利用onBindViewHolder方法显示具体内容
  • 利用getItemCount总计数据的总数
public class MyAdapter extends RecyclerView.Adapter {


    private LayoutInflater mInflater;
    private List datas;

    public MyAdapter(Context mContext, List datas) {
        this.datas = datas;
        mInflater = LayoutInflater.from(mContext);
    }




    @Override
    public ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {



        View v = mInflater.inflate(R.layout.item_list,parent,false);
        ItemHolder itemHolder = new ItemHolder(v);
        return itemHolder;
    }

    @Override
    public void onBindViewHolder(ItemHolder holder, int position) {

            holder.imageView.setImageResource(datas.get(position).getId());
            holder.teTitle.setText(datas.get(position).getTitle());
            holder.teContent.setText(datas.get(position).getContent());
    }

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

}

4.创建item布局和主布局
这一点比较简单,不做解释

  1. 在主界面显示recyclerView
    这一点同普通的listView实现基本相同,有一点需要注意的是:在显示之前需要为recyclerVIew设置布局。
    关键代码如下:
RecyclerView.LayoutManager mManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(mManager);

基本上到这里,就差不多完成了。
代码下载

你可能感兴趣的:(RecyclerView基础使用)