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); } } }