Recycler是当前主流的控件,使用RecyclerView控件不能为每个控件设置点击事件,需要开发者自己实现。引入这些操作这里就不介绍了
设置布局
在使用RecyclerView时候,必须指定一个适配器Adapter和一个布局管理器LayoutManager。适配器继承RecyclerView.Adapter类,可以根据业务需求扩展每个item呈现的样式和数据的展示.
配置每个item之间的间隔样式直接继承RecyclerView的ItemDecoration这个类,然后针对自己的业务需求去书写代码
设置布局管理器以控制Item的布局方式,横向、竖向以及瀑布流方式
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this ); // 线性布局方式
GridLayoutManager gridLayoutManager = new GridLayoutManager(this); // 网格布局方式
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(this); // 瀑布流的方法
//设置布局管理器
recyclerView.setLayoutManager(layoutManager);
//设置为垂直布局,这也是默认的
layoutManager.setOrientation(OrientationHelper. VERTICAL);
//设置Adapter
recyclerView.setAdapter(recycleAdapter);
//设置分隔线
recyclerView.addItemDecoration( new DividerGridItemDecoration(this ));
//设置增加或删除条目的动画
recyclerView.setItemAnimator( new DefaultItemAnimator());
为RecyclerView的每项设置点击事件(利用回调的方式)
先在定义的适配器Adapter中定义一个接口
public interface OnItemClickListener {
void onItemClick(int position);
}
在自定义的Adapter中声明一个变量和一个设置接口的方法,这样可以用adapter设置事件
private OnItemClickListener mItemClickListener;
public void setOnItemClickListener(OnItemClickListener itemClickListener) {
this.mItemClickListener = itemClickListener;
}
自义定Adapter中实现的onBindViewHolder方法中调用自定义的Holder可以直接拿到每项的视图设置点击事件
if (mItemClickListener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 这里利用回调来给RecyclerView设置点击事件
mItemClickListener.onItemClick(position);
}
});
}
喜欢的话点个赞吧!