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);
}
}
}
首页多布局
自定义XRecyclerView适配器
最新推荐文章于 2024-09-06 15:49:09 发布
1102

被折叠的 条评论
为什么被折叠?



