RecyclerView
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删除增加的动画效果