本人对这个控件不太了解,我想知道比如我点击1执行一个代码,点击2执行一个代码,1和2的代码,都不一样怎么解决?
跟ListView很相似的 看你的需求 你可以设置RecyclerView的多种行视图功能 跟ListView差不多 不过RecyclerView更简洁
@Override
public int getItemViewType(int position) {
if (position % 2 == 0) {//在这里判断position 返回View条目的类型
return 1;
} else {
return 2;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RecyclerView.ViewHolder viewHolder = null;
//RecyclerView已经把条目类型封装好了 你拿着直接判断加载不同的View就行了
//不过你的ViewHolder必须都继承 RecyclerView.Adapter<RecyclerView.ViewHolder> 这个 才可以
if (viewType == 1) {
viewHolder = new MyViewHolder(LayoutInflater.from(getActivity()).inflate(R.layout.item_expandable_sub_list, parent, false));
} else if (viewType == 2) {
viewHolder = new ViewHolder2(LayoutInflater.from(getActivity()).inflate(R.layout.item_tablelayout_more_viewtype, parent, false));
}
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//在这个方法里 你就可以根据position 来实现你所说的 代码1 和代码2 的不同功能了
if (position % 2 == 0) {
MyViewHolder viewHolder = (MyViewHolder) holder;
viewHolder.iv_image.setBackgroundResource(R.mipmap.alipay_logo);
viewHolder.tv_text.setText(mDatas.get(position));
} else {
ViewHolder2 viewHolder = (ViewHolder2) holder;
viewHolder.iv_more_view_type.setBackgroundResource(R.mipmap.run);
viewHolder.tv_more_view_type.setText("多种行视图");
}
}
@Override
public int getItemCount() {
return mDatas.size();
}
http://blog.csdn.net/lmj623565791/article/details/45059587,这个应该会使你对recycleView更了解
可以根据ViewType来达到实现任意子Item的多样化布局,每个item 点击事件设置到自身。这样每个item的点击事件都是独立的。网上有一篇通过触摸监听来实现全局的设置监听器,也是可以的。