多条目

本文介绍了一种使用RecyclerView实现多种视图类型的布局方法,通过不同的ViewHolder处理横幅广告、推荐商品等不同展示需求,并实现了相应的数据绑定逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

``
多条目`
@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view;
if (iBANNER_TYPR){
view= LayoutInflater.from(context).inflate(R.layout.xbanner,viewGroup,false);
xBannerHolder = new XBannerHolder(view);
return xBannerHolder;
}else if (i
RXXP_TYPR){
view= LayoutInflater.from(context).inflate(R.layout.rxxp,viewGroup,false);
rxxpHolder = new RxxpHolder(view);
return rxxpHolder;
}else if (iPZSH_TYPR){
view= LayoutInflater.from(context).inflate(R.layout.pzsh,viewGroup,false);
pzshHolder = new PzshHolder(view);
return pzshHolder;
}else if (i
MLSS_TYPR){
view= LayoutInflater.from(context).inflate(R.layout.mlss,viewGroup,false);
mlssHolder = new MlssHolder(view);
return mlssHolder;
}
return null;
}

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

if (viewHolder instanceof XBannerHolder){
XBannerHolder xBannerHolder= (XBannerHolder) viewHolder;
result = xBannerBean.getResult();
xBannerHolder.shou_banner.setData(result,null);
xBannerHolder.shou_banner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(context).load(result.get(position).getImageUrl()).into((ImageView) view);
}
});
xBannerHolder.shou_banner.setPageChangeDuration(1000);

}else if (viewHolder instanceof RxxpHolder){
RxxpHolder rxxpHolder = (RxxpHolder) viewHolder;
rxxpHolder.rxxp_text.setText(shouBean.getResult().getRxxp().getName());
LinearLayoutManager manager=new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL,false);
rxxpHolder.rxxp_recy.setLayoutManager(manager);
commodityList = shouBean.getResult().getRxxp().getCommodityList();
rxxpAdapter = new RxxpAdapter(commodityList,context);
rxxpHolder.rxxp_recy.setAdapter(rxxpAdapter);
rxxpAdapter.setCallBackAA(new RxxpAdapter.CallBackAA() {
@Override
public void dianji(String id) {
Toast.makeText(context,id,Toast.LENGTH_LONG).show();
Log.i(“aaa”,id);
}
});

}else if (viewHolder instanceof PzshHolder){
PzshHolder pzshHolder= (PzshHolder) viewHolder;
pzshHolder.pzsh_text.setText(shouBean.getResult().getPzsh().getName());
LinearLayoutManager manager=new LinearLayoutManager(context);
pzshHolder.pzsh_recy.setLayoutManager(manager);
commodityList1 = shouBean.getResult().getPzsh().getCommodityList();
pzshHolder.pzsh_recy.setAdapter(new PzshAdapter(commodityList1,context));
}else if (viewHolder instanceof MlssHolder){
MlssHolder mlssHolder= (MlssHolder) viewHolder;
mlssHolder.mlss_text.setText(shouBean.getResult().getMlss().getName());
LinearLayoutManager manager=new GridLayoutManager(context,2);
mlssHolder.mlss_recy.setLayoutManager(manager);
commodityList2 = shouBean.getResult().getMlss().getCommodityList();
mlssHolder.mlss_recy.setAdapter(new MlssAdapter(commodityList2,context));

}
}

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

@Override
public int getItemViewType(int position) {

    if (position==0){
    return BANNER_TYPR;
    }else if (position==1){
        return RXXP_TYPR;
    }else if (position==2){
        return PZSH_TYPR;
    }else if (position==3){
        return MLSS_TYPR;
    }
    return super.getItemViewType(position);

}

//xbannerholder
public class XBannerHolder extends RecyclerView.ViewHolder {

    private final XBanner shou_banner;

    public XBannerHolder(@NonNull View itemView) {
        super(itemView);
        shou_banner = itemView.findViewById(R.id.shou_banner);
    }
}
//rxxpholder
public class RxxpHolder extends RecyclerView.ViewHolder {

    private final TextView rxxp_text;
    private final RecyclerView rxxp_recy;
    public RxxpHolder(@NonNull View itemView) {
        super(itemView);
        rxxp_text = itemView.findViewById(R.id.rxxp_text);
        rxxp_recy = itemView.findViewById(R.id.rxxp_recy);
    }
}
//pzshholder
public class PzshHolder extends RecyclerView.ViewHolder {

    private final TextView pzsh_text;
    private final RecyclerView pzsh_recy;
    public PzshHolder(@NonNull View itemView) {
        super(itemView);
        pzsh_text = itemView.findViewById(R.id.pzsh_text);
        pzsh_recy = itemView.findViewById(R.id.pzsh_recy);
    }
}
//mlssholder
public class MlssHolder extends RecyclerView.ViewHolder {

    private final TextView mlss_text;
    private final RecyclerView mlss_recy;
    public MlssHolder(@NonNull View itemView) {
        super(itemView);
        mlss_text = itemView.findViewById(R.id.mlss_text);
        mlss_recy = itemView.findViewById(R.id. mlss_recy);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值