- 引入库
//代码简化 annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' implementation 'com.jakewharton:butterknife:8.8.1' //recyclerView implementation 'com.android.support:recyclerview-v7:28.0.0'
- 重写方法
@Override public int getItemViewType(int position) { if (position == 0) { return 0; } else if (position == 1 || position == 3) { return 1; } else { return 2; } }
- 几种Viewholder
class Item3ViewHolder extends RecyclerView.ViewHolder{ @BindView(R.id.iv5) ImageView iv5; public Item3ViewHolder(@NonNull View itemView) { super(itemView); ButterKnife.bind(this, itemView); } } class Item2ViewHolder extends RecyclerView.ViewHolder{ @BindView(R.id.iv4) ImageView iv4; @BindView(R.id.iv3) ImageView iv3; @BindView(R.id.iv2) ImageView iv2; public Item2ViewHolder(@NonNull View itemView) { super(itemView); ButterKnife.bind(this, itemView); } } class Item1ViewHolder extends RecyclerView.ViewHolder{ @BindView(R.id.iv1) ImageView iv1; @BindView(R.id.tv1) TextView tv1; @BindView(R.id.tv2) TextView tv2; public Item1ViewHolder(@NonNull View itemView) { super(itemView); ButterKnife.bind(this, itemView); } }
- 创建多种ViewHolder
@NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { if (i == 0) { View v = LayoutInflater.from(mContext).inflate(R.layout.item3, viewGroup, false); return new Item3ViewHolder(v); } else if (i == 1) { View view = LayoutInflater.from(mContext).inflate(R.layout.item2, viewGroup, false); return new Item2ViewHolder(view); } else { View view = LayoutInflater.from(mContext).inflate(R.layout.item1, viewGroup, false); return new Item1ViewHolder(view); } }