美文网首页
RecyclerView

RecyclerView

作者: HOLLE_karry | 来源:发表于2020-03-20 17:42 被阅读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));
接口回调

1.概述
类A调用类B的方法b(),类B在回调类A的方法a(),期中方法a()是定义在接口中的,由类A来实现,这是一个双向调用的过程。
2.步骤:
①在adapter定义一个内部接口,内部接口定义一个方法,方法参数是我们需要返回值的
②在adapter中定义接口变量,并设置set方法
③在onBindViewHolder中,给条目做一个点击事件
④在fragment或activity中,使用adapter对象调用点击事件

//定义接口
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,根据不同类型加载不同数据

3.RecyclerView多布局(奇数位左图右文字+偶数位左文字右图)

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

4.RecyclerView添加刷新

①添加依赖
②在布局中添加刷新的控件并找控件
③给刷新控件加载更多、下拉刷新添加监听,监听中写具体代码
④刷新完列表,关闭SmartRefreshLayout头和脚

5.RecyclerView与ListView的对比

RecyclerView与ListView不同点

ListView:
① 继承BaseAdapter,需要重写四个方法
②自定义ViewHolderconvertView的优化(判断是否为null);
③可以直接使用item的点击事件
④不用单独设置分隔线
⑤不可以定向刷新某一条数据
RecyclerView:
① 继承RecyclerView.AdapterRecyclerView.ViewHolder
②必须使用viewholder,封装了view的复用
③设置LayoutManager,以及layout的布局效果
④点击事件可以使用给控件设置点击事件,也可以自定义点击事件
⑤可以自定义绘制分隔线
⑥可以定向刷新某一条数据notifyItemChanged等方法
⑦可以自定义item删除增加的动画效果

相关文章

网友评论

      本文标题:RecyclerView

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