您的位置:首页 > 其它

RecycleView添加头部、点击事件的监听

2016-11-18 16:08 351 查看
RecycleView添加头部布局其实就是通过Adapter中的Position来分辨的,当position为0时膨胀头布局,其他position返回常规布局:

public static final int TYPE_FIRSTHEADVIEW = 0;//第一个头布局
public static final int TYPE_SECHEADVIEW = 1; //第二个头布局
public static final int TYPE_NORMALVIEW = 2; //RecycleView布局

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_FIRSTHEADVIEW) {
//第一个头布局View
View view = mLayoutInflater.inflate(R.layout.recycle_firstheadview, parent, false);

return new HeaderViewHolder(view);
} else if (viewType == TYPE_SECHEADVIEW) {
//第二个头布局
View view2 = mLayoutInflater.inflate(R.layout.recycle_secheadview, parent, false);
//intSecRecycleData(view2);
return new SecViewHolder(view2);
}
View view3 = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_normalview, parent, false);
VideoViewHolder vh = new VideoViewHolder(view3);
return vh;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
//第一个头布局
if (isHeader(position)) {
//相应数据绑定操作
return;
//第二个头布局
} else if (isSec(position)) {
//相应数据绑定

return;
}
//常规布局数据操作
//由于添加了两个头布局,在做数据绑定的时候要position-2才是第一个数据源对应的item
}

private boolean isSec(int position) {
return position == 1;
}

public boolean isHeader(int position) {
return position == 0;
}


RecycleView  adapter添加监听器

public interface MyOnItemClickListener {
void OnItemClick(View view, int position, int prentPosition, int viewid);
}

public void setOnItemClickListener(MyOnItemClickListener mOnItemClickListener) {
this.mOnItemClickListener = mOnItemClickListener;
}

private MyOnItemClickListener onItemClickListener = new MyOnItemClickListener() {
@Override
public void OnItemClick(View view, int position, int prentPosition, int viewid) {

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: