private static final int TYPE_BANNER = 0; //第一个Banner布局
private static final int TYPE_FUNCTION = 1; //第二个功能表布局
private static final int TYPE_SELLERS = 2; //第三个热销榜布局
private static final int TYPE_FRUIT = 3; //第四个水果Item布局
private static final int TYPE_FOOTER = 4; //第五个底部加载布局
2. 重写 getItemViewType() 方法
// 根据你想要的放置的 item 位置来返回不同的类型
@Override
public int getItemViewType(int position) {
if (position == 0) {
return TYPE_BANNER;
}else if (position == 1) {
return TYPE_FUNCTION;
}else if (position == 2) {
return TYPE_SELLERS;
}else if (position + 1 == getItemCount()) {
return TYPE_FOOTER;
}else {
return TYPE_FRUIT;
}
}
3. 根据 Item 的类型,来定义对应的 ViewHolder
如果只是要展示出来就不需要进行 实例的获取了
如果后续操作需要实例,那么就在 ViewHolder 的构造方法中获取
// 后续操作需要实例的
class BannerViewHolder extends RecyclerView.ViewHolder {
ViewPager viewPager;
LinearLayout linearLayout;
public BannerViewHolder(@NonNull View itemView) {
super(itemView);