多条目适配器

public class IProAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {

private Context context;
private List<IBean.DataBean.BannerBean> bannerBeans;
private List<IBean.DataBean.FenleiBean> fenleiBeans;
private List<IBean.DataBean.MiaoshaBean.ListBean> listBeans;
private List<IBean.DataBean.TuijianBean.ListBeanX> listBeanXES;
private final int ONE_BANNER=0;
private final int TWO_FEI=1;
private final int THREE_MIAO=2;
private final int FOUR_TUI=3;

public IProAdapter(Context context) {
    this.context = context;
    bannerBeans = new ArrayList<>();
    fenleiBeans = new ArrayList<>();
    listBeans = new ArrayList<>();
    listBeanXES = new ArrayList<>();
}

public void setlist(IBean.DataBean dataBean){
    if (dataBean!=null){
        this.bannerBeans = dataBean.getBanner();
        this.fenleiBeans = dataBean.getFenlei();
        this.listBeans = dataBean.getMiaosha().getList();
        this.listBeanXES = dataBean.getTuijian().getList();
    }
    notifyDataSetChanged();
}

@Override
public int getItemViewType(int position) {
    if (position ==ONE_BANNER){
        return ONE_BANNER;
    }else if (position ==TWO_FEI){
        return TWO_FEI;
    }else if (position ==THREE_MIAO){
        return THREE_MIAO;
    }else {
        return FOUR_TUI;
    }
}

@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view;
    if (getItemViewType(i)==ONE_BANNER){
        view=LayoutInflater.from(context).inflate(R.layout.item_banner,viewGroup,false);
        OneVH oneVH=new OneVH(view);
        return oneVH;
    }else if (getItemViewType(i)==TWO_FEI){
        view=LayoutInflater.from(context).inflate(R.layout.item_fei,viewGroup,false);
        TwoVH twoVH=new TwoVH(view);
        return twoVH;
    }else if (getItemViewType(i)==THREE_MIAO){
        view=LayoutInflater.from(context).inflate(R.layout.item_miao,viewGroup,false);
        ThreeVH threeVH=new ThreeVH(view);
        return threeVH;
    }else {
        view=LayoutInflater.from(context).inflate(R.layout.item_tui,viewGroup,false);
        FourVH fourVH=new FourVH(view);
        return fourVH;
    }

}

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

    if (bannerBeans!=null&&fenleiBeans!=null&&listBeans!=null&&listBeanXES!=null){
        //instanceof判断其左边对象是否为其右边类的实例
        if (viewHolder instanceof OneVH){
            List<String> list=new ArrayList<>();
            for (int y=0;y< bannerBeans.size();y++){
                list.add(bannerBeans.get(y).getIcon());
            }
            ((OneVH) viewHolder).fly.setImagesUrl(list);
        }else if (viewHolder instanceof TwoVH){
            //布局管理器
            ((TwoVH) viewHolder).frv.setLayoutManager(new GridLayoutManager(context,5));
            //创建适配器
            FenAdapter fenAdapter = new FenAdapter(context,fenleiBeans);
            //设置适配器
            ((TwoVH) viewHolder).frv.setAdapter(fenAdapter);
        }else if(viewHolder instanceof ThreeVH){
          /*  ((ThreeVH) viewHolder).miao_name.setText(listBeans.get(i).get());*/
            //布局管理器
            ((ThreeVH) viewHolder).mrv.setLayoutManager(new GridLayoutManager(context,5));
            //创建适配器
            MiaoAdapter miaoAdapter = new MiaoAdapter(context,listBeans);
            //设置适配器
            ((ThreeVH) viewHolder).mrv.setAdapter(miaoAdapter);
        }else if (viewHolder instanceof FourVH){
            //布局管理器
            ((FourVH) viewHolder).trv.setLayoutManager(new LinearLayoutManager(context));
            //创建适配器
            TuiAdapter tuiAdapter = new TuiAdapter(context,listBeanXES);
            ((FourVH) viewHolder).trv.setAdapter(tuiAdapter);
        }
    }

}

@Override
public int getItemCount() {
    return 4;
}
/*轮播*/
class OneVH extends XRecyclerView.ViewHolder{
    private FlyBanner fly;
    public OneVH(@NonNull View itemView) {
        super(itemView);
        fly=itemView.findViewById(R.id.fly);
    }

}

class TwoVH extends XRecyclerView.ViewHolder{
    private XRecyclerView frv;
    public TwoVH(@NonNull View itemView) {
        super(itemView);
        frv=itemView.findViewById(R.id.frv);
    }

}
class ThreeVH extends XRecyclerView.ViewHolder{
   private XRecyclerView mrv;
   private TextView miao_name;
    public ThreeVH(@NonNull View itemView) {
        super(itemView);
        mrv=itemView.findViewById(R.id.mrv);
        miao_name=itemView.findViewById(R.id.miao_name);
    }

}
class FourVH extends XRecyclerView.ViewHolder{
    private XRecyclerView trv;
      public FourVH(@NonNull View itemView) {
            super(itemView);
           trv=itemView.findViewById(R.id.trv);
        }

}

}

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值