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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值