美文网首页
RecyclerView

RecyclerView

作者: Android卡卡西 | 来源:发表于2020-03-22 17:26 被阅读0次

    1.RecyclerView的使用步骤

    ①添加依赖(implementation 'com.android.support:recyclerview-v7:29.0.2')
    ②创建布局(宽、高必须充满)
    ③找控件
    ④设置布局管理器(线性布局,网格布局和瀑布流)
    ⑤获取数据(切换子线程的方法)
    ⑥创建适配器——重写三个方法,通过接口回调实现点击事件
    ⑦设置适配器
    布局管理器
    //线性布局
    rv.setLayoutManager(new LinearLayoutManager(this));
    //网格布局
    rv.setLayoutManager(new GridLayoutManager(this, 3));
    //瀑布流
    rv.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));

    接口回调
    类A调用类B的方法b(),类B在回调类A的方法a(),期中方法a()是定义在接口中的,由类A来实现,这是一个双向调用的过程。

    //定义接口
    public interface OnItemClickListener{
            void onItemClick(int position);
     }
    //设置传递接口类实现对象的方法
    private OnItemClickListener onItemClickListener;
        public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
            this.onItemClickListener = onItemClickListener;
        }
    //条目的监听事件
    holder.itemView.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
                onItemClickListener.onItemClick(position);
          }
     });
    

    2.RecyclerView多布局(banner+recycleview)

    ①RecyclerView基本使用
    ②定义类型常量
    ③重写获取条目根据位置分类的方法(getItemViewType)
    ④重写onCreateViewHolder,根据类型创建不同的布局
    ⑤重写onBindViewHolder,根据不同类型加载不同数据

    *注意:
    ①获取条目总数(list.size() +1)
    ②onBindViewHolder:获取列表条目数据的时候(position-1)
    3.RecyclerView与ListView的对比
    RecyclerView与ListView不同点

    ListView:

    ① 继承BaseAdapter,需要重写四个方法
    ②自定义ViewHolder与convertView的优化(判断是否为null);
    ③可以直接使用item的点击事件
    ④不用单独设置分隔线
    ⑤不可以定向刷新某一条数据

    RecyclerView:

    ① 继承RecyclerView.Adapter与RecyclerView.ViewHolder
    ②必须使用viewholder,封装了view的复用
    ③设置LayoutManager,以及layout的布局效果
    ④点击事件可以使用给控件设置点击事件,也可以自定义点击事件
    ⑤可以自定义绘制分隔线
    ⑥可以定向刷新某一条数据notifyItemChanged等方法
    ⑦可以自定义item删除增加的动画效果

    相关文章

      网友评论

          本文标题:RecyclerView

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