RecyclerView 基本使用

基本使用
在 build.gradle 文件中引入该类。

compile 'com.android.support:recyclerview-v7:23.4.0'

必要的初始化

mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
/设置布局管理器
mRecyclerView.setLayoutManager(mLayoutManager);
// 设置adapter
mRecyclerView.setAdapter(mAdapter);
// 设置Item添加和移除的动画
mRecyclerView.setItemAnimator(newDefaultItemAnimator());
// 设置Item之间间隔样式
mRecyclerView.addItemDecoration(mDividerItemDecoration);

RecyclerView 提供了三种布局管理器:

LinerLayoutManager 以垂直或者水平列表方式展示 Item
GridLayoutManager 以网格方式展示 Item
StaggeredGridLayoutManager 以瀑布流方式展示 Item

RecyclerView 适配器 Adapter 代码

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{

private ArrayList<String> mData;

public MyAdapter(ArrayList<String> data) {
    this.mData = data;
}

public void updateData(ArrayList<String> data) {
    this.mData = data;
    notifyDataSetChanged();
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    // 实例化展示的view
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_rv_item, parent, false);
    // 实例化viewholder
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    // 绑定数据
    holder.mTv.setText(mData.get(position));
}

@Override
public int getItemCount() {
    return mData == null ? 0 : mData.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {

    TextView mTv;

    public ViewHolder(View itemView) {
        super(itemView);
        mTv = (TextView) itemView.findViewById(R.id.item_tv);
    }
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。