import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/** rv.setLayoutManager(new LinearLayoutManager(this));
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 4);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
//返回position对应的条目所占的size
@Override
public int getSpanSize(int position) {
if (position < 5)
//这里返回4,指的是当position满足上面条件时,一个条目占得size是4
//也就是说这个条目占一行,因为上面设置的一行的size是4
return 4;
else if (4<= position && position < 9)
//这里返回2,指的是当position满足上面条件时,一个条目占得size是2
// 也就是说这个条目占半行,因为上面设置的一行的size是4
return 2;
else
//这里返回1,指的是当position满足上面条件时,一个条目占得size是1
// 也就是说这个条目占1/4行,因为上面设置的一行的size是4
return 1;
}
});
//用来添加分割线
//mRecy.addItemDecoration();
//设置管理
rv.setLayoutManager(gridLayoutManager);
*
*/
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
Context context;
ArrayList<Use> list;
public MyAdapter(Context context , ArrayList<Use> list) {
this.context=context;
this.list=list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
RecyclerView.ViewHolder viewHolder = null;
//根据viewType生成viewHolder
switch (viewType) {
case 0:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a, null);
viewHolder = new Holder1(view);
break;
case 1:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.b, null);
viewHolder = new Holder2(view);
break;
case 2:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.c, null);
viewHolder = new Holder3(view);
break;
}
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
int itemViewType = getItemViewType(position);
switch (itemViewType) {
case 0:
Holder1 vh1 = (Holder1) holder;
vh1.te1.setText(list.get(position).name);
vh1.te2.setText(list.get(position).age);
vh1.img1.setBackgroundResource(list.get(position).img);
break;
case 1:
Holder2 vh2 = (Holder2) holder;
vh2.te3.setText(list.get(position).name);
vh2.te4.setText(list.get(position).age);
break;
case 2:
Holder3 vh3 = (Holder3) holder;
vh3.te5.setText(list.get(position).name);
vh3.te6.setText(list.get(position).age);
vh3.img3.setBackgroundResource(list.get(position).img);
vh3.img4.setBackgroundResource(list.get(position).img);
break;
}
}
@Override
public int getItemViewType(int position) {
//跟据position对应的条目返回去对应的样式(Type)
// if (TextUtils.isEmpty(mList.get(position).getThumbnail_pic_s02())
// &&TextUtils.isEmpty(mList.get(position).getThumbnail_pic_s03())
// ){
// return ONE;
// }else{
// return TWO;
// }
if (position < 5) {
return 0;
} else if (5 <= position && position < 8) {
return 1;
} else return 2;
}
@Override
public int getItemCount() {
return list.size();
}
class Holder1 extends RecyclerView.ViewHolder {
TextView te1;
ImageView img1;
TextView te2;
public Holder1(View itemView) {
super(itemView);
te1 = itemView.findViewById(R.id.te1);
te2 = itemView.findViewById(R.id.te2);
img1 = itemView.findViewById(R.id.img1);
}
}
class Holder2 extends RecyclerView.ViewHolder {
TextView te3;
TextView te4;
public Holder2(View itemView) {
super(itemView);
te3 = itemView.findViewById(R.id.te3);
te4 = itemView.findViewById(R.id.te4);
}
}
class Holder3 extends RecyclerView.ViewHolder {
TextView te5;
ImageView img3;
ImageView img4;
TextView te6;
public Holder3(View itemView) {
super(itemView);
te5 = itemView.findViewById(R.id.te5);
te6 = itemView.findViewById(R.id.te6);
img3 = itemView.findViewById(R.id.img3);
img4 = itemView.findViewById(R.id.img4);
}
}
}