首页多布局

package liwei2018730.bwie.com.myapplication.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.gongwen.marqueen.MarqueeFactory;
import com.gongwen.marqueen.MarqueeView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

import liwei2018730.bwie.com.myapplication.MainActivity;
import liwei2018730.bwie.com.myapplication.R;
import liwei2018730.bwie.com.myapplication.bean.HomePageBean;
import liwei2018730.bwie.com.myapplication.bean.HomePageNineImgBean;

/**
 * Created by li li on 2018/8/14.
 */

public class HomePageXRAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {
        public final int BANNER_TYPE = 0;
        public final int GRIDVIEW_TYPE = 1;
        public final int RECYCLER_MIAOSHA = 3;
        public final int RECYCLER_KUAIBAO = 2 ;
        public final int RECYCLER_TYPE = 4 ;
        private List<HomePageBean.DataBean.BannerBean> bannerimagelistdata;
        private HomePageBean.DataBean.MiaoshaBean miaosha;
        private List<HomePageBean.DataBean.TuijianBean.ListBeanX> tuijian;
        private List<HomePageNineImgBean.DataBean> nineData;
        private Context context;

    public HomePageXRAdapter(Context context,  List<HomePageBean.DataBean.BannerBean> bannerimagelistdata, HomePageBean.DataBean.MiaoshaBean miaosha, List<HomePageBean.DataBean.TuijianBean.ListBeanX> tuijian,List<HomePageNineImgBean.DataBean> nineData) {
        this.context = context;
        this.bannerimagelistdata = bannerimagelistdata;
        this.miaosha = miaosha;
        this.tuijian = tuijian;
        this.nineData = nineData;

    }

    @Override
    public int getItemViewType(int position) {
        if(0==position){
            return BANNER_TYPE;
        }else if(1==position){
            return GRIDVIEW_TYPE;
        }else if(2==position){
            return RECYCLER_KUAIBAO;
        }else if(3==position){
            return RECYCLER_MIAOSHA;
        }else {
            return RECYCLER_TYPE;
        }
    }

    @NonNull
    @Override
    public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
       if(viewType==BANNER_TYPE){
           MyBanner myBanner = new MyBanner(LayoutInflater.from(context).inflate(R.layout.homepage_xrecyclerview_banner, parent, false));
            return myBanner;
       }else if(viewType==GRIDVIEW_TYPE){
           MyGridView myGridView = new MyGridView(LayoutInflater.from(context).inflate(R.layout.homepage_xrecyclerview_niceimg, parent, false));
           return myGridView;
       }else if(viewType==RECYCLER_KUAIBAO){
           KuaiBao kuaiBao = new KuaiBao(LayoutInflater.from(context).inflate(R.layout.homepage_xrecyclerview_kuaibao, parent, false));
           return kuaiBao;
       }else if(viewType==RECYCLER_TYPE){
           MyRecycler myRecycler = new MyRecycler(LayoutInflater.from(context).inflate(R.layout.homepage_xrecyclerview_tuijian, parent, false));
           return myRecycler;
       }else {
           Seckill seckill = new Seckill(LayoutInflater.from(context).inflate(R.layout.homepage_miaosha, parent, false));
           return seckill;
       }
    }

    @Override
    public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder holder, int position) {
      //  HomePageBean.DataBean.BannerBean bannerBean = bannerimagelistdata.get(position);

        if(holder instanceof MyBanner){
            ArrayList<String> listicon = new ArrayList<>();
            for (int i = 0; i < bannerimagelistdata.size(); i++) {
                HomePageBean.DataBean.BannerBean bannerBean = bannerimagelistdata.get(i);
                listicon.add(bannerBean.getIcon());
            }
                Banner banner_id = ((MyBanner) holder).banner_id;
               // MyBanner myBanner = (MyBanner) holder;
              //  Banner banner_id = myBanner.banner_id;
                setBanner(banner_id,listicon);
            }else if(holder instanceof KuaiBao){
            List<String> kuaibaolist = new ArrayList<>();

            for (int i = 0; i < bannerimagelistdata.size(); i++) {
                HomePageBean.DataBean.BannerBean bannerBean = bannerimagelistdata.get(i);
                kuaibaolist.add(bannerBean.getTitle());
            }
            for (int i = 0; i < kuaibaolist.size(); i++) {
                String s = kuaibaolist.get(i);
                System.out.println("遍历出来的快报值"+s);
            }
            MarqueeView marqueeView = ((KuaiBao) holder).marqueeView;
            MarqueeFactory<TextView, String> marqueeFactory1 = new NoticeMF(context);
            //MarqueeView设置Factory
            marqueeView.setMarqueeFactory(marqueeFactory1);
            //开始翻转
            marqueeView.startFlipping();
            //设置item的监听
            marqueeFactory1.setOnItemClickListener(new MarqueeFactory.OnItemClickListener<TextView, String>() {
                @Override
                public void onItemClickListener(MarqueeFactory.ViewHolder<TextView, String> holder) {
                    Toast.makeText(context, holder.data, Toast.LENGTH_SHORT).show();
                }
            });
            //设置数据
            marqueeFactory1.setData(kuaibaolist);
        } else if(holder instanceof Seckill){
            List<HomePageBean.DataBean.MiaoshaBean.ListBean> list = miaosha.getList();
            RecyclerView recycller_seckill = ((Seckill) holder).recycller_seckill;

            recycller_seckill.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false));
            //recycller_seckill.addItemDecoration(new DividerItemDecoration(context,DividerItemDecoration.VERTICAL));
            SeckillAdapter seckillAdapter = new SeckillAdapter(context, list);
            recycller_seckill.setAdapter(seckillAdapter);
        }

        else if(holder instanceof MyRecycler){
            RecyclerView recommend_rv = ((MyRecycler) holder).recommend_rv;
            recommend_rv.setLayoutManager(new GridLayoutManager(context,2));
            HomePageRecommendAdapter homePageRecommendAdapter = new HomePageRecommendAdapter(tuijian, context);
            recommend_rv.setAdapter(homePageRecommendAdapter);
        }else    if(holder instanceof MyGridView){

            RecyclerView homepage_gv = ((MyGridView) holder).homepage_gv;
//            HomeGridViewAdapter homeGridViewAdapter = new HomeGridViewAdapter(context, nineData);
//            homepage_gv.setAdapter(homeGridViewAdapter);
            homepage_gv.setLayoutManager(new GridLayoutManager(context,5));
            NiceImgAdapter niceImgAdapter = new NiceImgAdapter(context, nineData);
            homepage_gv.setAdapter(niceImgAdapter);

        }
    }
    @Override
    public int getItemCount() {
        return 5;
    }
    public void setBanner(Banner banner, ArrayList<String> listicon) {
         banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
         banner.setImageLoader(new BannerImageLoad());
         banner.setImages(listicon);
         banner.setBannerAnimation(Transformer.Default);
         banner.isAutoPlay(true);
         banner.setDelayTime(2000);
         banner.start();
    }
    class NoticeMF extends MarqueeFactory<TextView, String> {
        private LayoutInflater inflater;

        public NoticeMF(Context mContext) {
            super(mContext);
            inflater = LayoutInflater.from(mContext);
        }

        @Override
        public TextView generateMarqueeItemView(String data) {
            TextView mView = (TextView) inflater.inflate(R.layout.homepage_kuaibao_item, null);
            mView.setText(data);
            return mView;
        }
    }

    class BannerImageLoad extends ImageLoader{
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
          //  Log.i("asas","Banner图片加载地址为"+path.toString());
            Glide.with(context).load(path).into(imageView);
        }
    }

    class MyBanner extends XRecyclerView.ViewHolder{

        public Banner banner_id;

        public MyBanner(View itemView) {
            super(itemView);
            banner_id = itemView.findViewById(R.id.banner_id);
        }
    }
    class MyGridView extends XRecyclerView.ViewHolder {

        public RecyclerView homepage_gv;

        public MyGridView(View itemView) {
            super(itemView);
            homepage_gv = itemView.findViewById(R.id.niceimg_recycler);
        }
    }
    class MyRecycler extends XRecyclerView.ViewHolder{
        public  RecyclerView recommend_rv;

        public MyRecycler(View itemView) {
            super(itemView);
            recommend_rv = itemView.findViewById(R.id.recommend_rv);
        }
    }
    class Seckill extends RecyclerView.ViewHolder{

        RecyclerView recycller_seckill;

        public Seckill(View itemView) {
            super(itemView);
            recycller_seckill = itemView.findViewById(R.id.homepage_recycler_seckill);
        }

    }
    class KuaiBao extends RecyclerView.ViewHolder{


        private final MarqueeView marqueeView;

        public KuaiBao(View itemView) {
            super(itemView);
            marqueeView = itemView.findViewById(R.id.marqueeView1);
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值