RecycleView的基本用法

RecycleView的用法

  1. build.gradle中加入:

    compile 'com.android.support:recyclerview-v7:23.1.1'
  2. 布局文件引入:

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
  3. 代码:

    RecyclerView recycleView = (RecyclerView) findViewById(R.id.recyclerView);
  4. 准备要填充的数据

    private void initData() {
            urls = new ArrayList<>();
            urls.add(url1);
            urls.add(url2);
            urls.add(url3);
            urls.add(url4);
            urls.add(url5);
            urls.add(url6);
            urls.add(url7);
            urls.add(url8);
            urls.add(url9);
            urls.add(url10);
        }
  5. 准备适配器

    public class MyAdapter extends RecyclerView.Adapter<MyVH> {
                private Context context;
                private List<String> urls;
    
                public MyAdapter(Context context, List<String> urls) {
                    this.context = context;
                    this.urls = urls;
                }
    
                //★1.onCreateViewHolder:
                //充气Item的View,并且以此View作为一个参数创建ViewHolder,并且返回此VH
                @Override
                public MyVH onCreateViewHolder(ViewGroup parent, int viewType) {
                    LayoutInflater inflater = LayoutInflater.from(context);
    // 要按照下面方式inflate布局,不然会出现match_parent无效,另外要让recyclerView宽高为match_parent(不一定)
                    View view = inflater.inflate(R.layout.item, parent,false);
                    return new MyVH(view);
                }
    
                //★2.onBindViewHolder:
                //在这里把List里的数据绑定到Item控件上
                @Override
                public void onBindViewHolder(MyVH holder, int position) {
                    Picasso.with(context).load(urls.get(position)).resize(300, 300).error(R.mipmap.qq).placeholder(R.mipmap.ic_launcher).into(holder.iv);
                }
    
                //★3.getItemCount
                //返回List的长度
                @Override
                public int getItemCount() {
                    return urls.size();
                }
    
                //★★★创建一个VH的子类,在这里执行findViewById,找到所有需要的控件
                public class MyVH extends RecyclerView.ViewHolder {
                    public ImageView iv;
                    public MyVH(View itemView) {
                        super(itemView);
                        iv = (ImageView) itemView.findViewById(R.id.iv);
                    }
                }
            }
  6. 给recycleView设置布局形式(setLayoutManager)和适配器(setAdapter)

        MyAdapter myAdapter = new MyAdapter(context, urls);
            LinearLayoutManager manager = new LinearLayoutManager
                    (context, LinearLayoutManager.VERTICAL, false);
            recycleView.setLayoutManager(manager);
            recycleView.setAdapter(myAdapter);
  7. 设置分割线

  8. 设置动画效果

  9. 通过接口回调实现setOnItemClick事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值