Xrecycleview多条目

public interface HomeContract {
public abstract class IHomePersenter{
public abstract void getHome(HashMap<String,String> map);

}
interface IHomeModel{
    void getHome(HashMap<String, String> map, RequestCallback requestCallback);

}
interface IHomeView{
    
    void onFailpro(String msg);
    void onSuccesspro(HomeBean.DataBean list);

}

}

#适配器

public class HomeAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {
private final int TYPE_BANNER = 0;
private final int TYPE_FENLIE = 1;
private final int TYPE_MIAOSHA = 2;
private final int TYPE_TUIJIAN = 3;
private Context context;
private HomeBean.DataBean list;

public HomeAdapter(Context context, HomeBean.DataBean list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    if (getItemViewType(i)==TYPE_BANNER){
        View inflate = LayoutInflater.from(context).inflate(R.layout.xbanner_item, viewGroup, false);
        VHbanner vHbanner = new VHbanner(inflate);
        return vHbanner;
    }else if(getItemViewType(i)==TYPE_FENLIE){
        View inflate = LayoutInflater.from(context).inflate(R.layout.fenlie_layout, viewGroup, false);
        VHfenlei vHfenlei = new VHfenlei(inflate);
        return vHfenlei;
    }else if(getItemViewType(i)==TYPE_MIAOSHA){
        View inflate = LayoutInflater.from(context).inflate(R.layout.miaosha_layout, viewGroup, false);
        VHmiaosha vHmiaosha = new VHmiaosha(inflate);
        return vHmiaosha;
    }else {
        View inflate = LayoutInflater.from(context).inflate(R.layout.tuijian_layout, viewGroup, false);
        VHtuijian vHtuijian = new VHtuijian(inflate);
        return vHtuijian;
    }

}

@Override
public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {

    if (list.banner!=null&&list.fenlei!=null&&list.miaosha!=null&&list.tuijian!=null){
        if (viewHolder instanceof VHbanner){
            final ArrayList<String> b = new ArrayList<>();
            for (int j = 0;j<list.banner.size();j++){
                b.add(list.banner.get(j).icon);
            }
            ((VHbanner) viewHolder).xbanner.setData(b,null);
            ((VHbanner) viewHolder).xbanner.loadImage(new XBanner.XBannerAdapter() {
                @Override
                public void loadBanner(XBanner banner, Object model, View view, int position) {

                
                    //1、此处使用的Glide加载图片,可自行替换自己项目中的图片加载框架
                    //2、返回的图片路径为Object类型,你只需要强转成你传输的类型就行,切记不要胡乱强转!
                    Glide.with(context).load(b.get(position)).into((ImageView) view);

                }
            });
        }else if (viewHolder instanceof VHfenlei){
            ((VHfenlei) viewHolder).rc.setLayoutManager(new GridLayoutManager(context,2,GridLayoutManager.HORIZONTAL,false));
            HomeFenlieAdapter homeFenlieAdapter = new HomeFenlieAdapter(context, list.fenlei);
            ((VHfenlei) viewHolder).rc.setAdapter(homeFenlieAdapter);
        }else if (viewHolder instanceof VHmiaosha){
            ((VHmiaosha) viewHolder).rc.setLayoutManager(new LinearLayoutManager(context,LinearLayout.HORIZONTAL,false));
            HomeMiaoshaAdapter homeMiaoshaAdapter = new HomeMiaoshaAdapter(context, list.miaosha.list);
            ((VHmiaosha) viewHolder).rc.setAdapter(homeMiaoshaAdapter);
        }else {
            ((VHtuijian) viewHolder).rc.setLayoutManager(new LinearLayoutManager(context,LinearLayout.HORIZONTAL,false));
            HomeTuijianAdapter homeTuijianAdapter = new HomeTuijianAdapter(context, list.tuijian.list);
            ((VHtuijian) viewHolder).rc.setAdapter(homeTuijianAdapter);
        }
    }
}

@Override
public int getItemCount() {
    return 4;
}

@Override
public int getItemViewType(int position) {
    if (position==0){
        return TYPE_BANNER;
    }else if(position==1){
        return TYPE_FENLIE;
    }else if (position==2){
        return TYPE_MIAOSHA;
    }else {
        return TYPE_TUIJIAN;
    }

}

class VHbanner extends RecyclerView.ViewHolder{
    XBanner xbanner;
    public VHbanner(@NonNull View itemView) {
        super(itemView);
        xbanner = itemView.findViewById(R.id.xbanner);
    }
}
class VHfenlei extends RecyclerView.ViewHolder{
    RecyclerView rc;
    public VHfenlei(@NonNull View itemView) {
        super(itemView);
        rc = itemView.findViewById(R.id.rc);
    }
}
class VHmiaosha extends RecyclerView.ViewHolder{
    RecyclerView rc;
    public VHmiaosha(@NonNull View itemView) {
        super(itemView);
        rc = itemView.findViewById(R.id.rc);
    }
}
class VHtuijian extends RecyclerView.ViewHolder{
    RecyclerView rc;
    public VHtuijian(@NonNull View itemView) {
        super(itemView);
        rc = itemView.findViewById(R.id.rc);
    }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值