• Android RecyclerView初探


    今天研究了一下RecyclerView,RecyclerView比ListView的效率更高而且可以横向滑动,所以现在许多Android项目更倾向与使用RecyclerView。

    下面是一个RecyclerView的demo

    RecyclerView的库导入

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

    首先先得到控件和设置布局

    rv = (RecyclerView) findViewById(R.id.rv);
    rv.setLayoutManager(new LinearLayoutManager(context));

    然后输入测试数据

    list = new ArrayList<String>();
    for (int i = 0; i < 30; i++) {
    list.add("测试记录" + i);
    }
     

    设置Adapter,Adapter是自己定义的一个适配器可以放一个图片和文本

    设置点击事件,RecyclerView自己没有点击事件必须使用回调的方式在里面自己定义

    OnCreateViewHolder用来给rv创建缓存的,在这里对每一个view进行监听view.setOnClickListener(this)

    
    

    onBindViewHolder给缓存控件设置数据,在里面设置样式中的数据

    public void onBindViewHolder(MyAdapter.MyHolder holder, int position) {
    String item = list.get(position);
    holder.textView.setText(item);
    holder.icon.setImageResource(R.mipmap.ic_launcher);
    holder.itemView.setTag(position);
    }
    getItemCount

    getItemCount获取记录数

    public int getItemCount() {
    return list.size();
    }

    RecyclerView必须自己定义一个ViewHolder用来得到样式中的控键

    public class MyHolder extends RecyclerView.ViewHolder {
    public ImageView icon;
    public TextView textView;

    //实现的方法
    public MyHolder(View itemView) {
    super(itemView);
    icon = (ImageView) itemView.findViewById(R.id.item_iv_icon);
    textView = (TextView) itemView.findViewById(R.id.item_tv_title);
    }
    }

    下面是实现点击事件的方法


    //点击事件设置
    @Override
    public void onClick(View view) {
    if(itemClickListener!=null){
    itemClickListener.onItemClick((Integer) view.getTag());
    }
    }
    //接口设置
    public void setItemClickListener(OnItemClickListener itemClickListener){
    this.itemClickListener = itemClickListener;
    }

    //自定义点击接口
    public interface OnItemClickListener {
    void onItemClick(int tag);
    }

    可以得到效果:

     

     

    demo github地址:https://github.com/tempest1/RecyclerTest

  • 相关阅读:
    哈利波特买书事件
    闹钟类app构想
    梦断代码(7-尾)
    梦断代码(3-6)
    梦断代码(0-2)
    环形二维数组求最大子矩阵
    数组问题
    电梯考察
    四则运算的三张计划表
    团队开发用户需求调研
  • 原文地址:https://www.cnblogs.com/kkrs/p/8612708.html
Copyright © 2020-2023  润新知