美文网首页
RecyclerView 基本使用

RecyclerView 基本使用

作者: Pengoing | 来源:发表于2018-03-04 20:22 被阅读0次

    基本使用
    在 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);
        }
    }
    

    }

    相关文章

      网友评论

          本文标题:RecyclerView 基本使用

          本文链接:https://www.haomeiwen.com/subject/cqpqfftx.html