1.RecyclerView的使用:
mRecyclerView = (RecyclerView)findViewById(R.id.recyclerView);
// 设置成水平方向,2列.比起Listview来讲,非常方便
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.HORIZONTAL));
//设置adapter
mRecyclerView.setAdapter(adapter)
//设置Item增加、移除动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
//RecycleView 增加边距
int spacingInPixels = 43;
mRecyclerView.addItemDecoration(new SpacesItemDecorationLarge(spacingInPixels));
2.自定义点击事件:
1>adapter中:
public static interface OnRecyclerViewItemClickListener {
//自定义接口,设置参数,如有需要可把位置设置进去
void onItemClick(View view);
}
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
mOnItemClickListener = listener;
}
2>在onCreateViewHolder中,设置点击事件:
//将创建的View注册点击事件
view.setOnClickListener(this);
return new ViewHolder(view) ;
3>在onclick中:设置未实现的方法
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(v);
}
}
优化:
//第一步 Adapter自定义的Adapter
public static class ViewHolder extends RecyclerView.ViewHolder {
RelativeLayout layout_close;
RelativeLayout layout_open;
TextView how_much_num;
}
// 构造函数中,找到控件
public ViewHolder(View view) {
super(view);
layout_close = (RelativeLayout) view.findViewById(R.id.reLayout_close);
layout_open = (RelativeLayout) view.findViewById(R.id.relayout_open);
how_much_num = (TextView) view.findViewById(R.id.how_much_num);
}
//在onBindViewHolder中设置控件
holder.how_much_num.setText(luckMoney.getGiftNum());
holder.tv1_open.setText(luckMoney.getExecutionName());