首先就是要给他一个布局
package com.five.nsg; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.five.R; import com.five.adapter.NewWord; import com.five.adapter.XRAdapter; import com.five.util.API; import com.five.util.GsonObjectCallback; import com.five.util.OkHttp3Utils; import com.jcodecraeer.xrecyclerview.XRecyclerView; import java.io.IOException; import okhttp3.Call; public class Fragment_shou extends Fragment { private XRecyclerView recyclerview; //获取数据的开始 private XRAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_shou, null); //初始化xr recyclerview= (XRecyclerView) view.findViewById(R.id.id_recyclerview); //加布局管理器 LinearLayoutManager layoutManager=new LinearLayoutManager(getActivity()); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerview.setLayoutManager(layoutManager); recyclerview.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { recyclerview.refreshComplete(); } @Override public void onLoadMore() { recyclerview.refreshComplete(); } }); getDate(); return view; } private void getDate() { OkHttp3Utils.getInstance().doGet(API.MPATH, new GsonObjectCallback<NewWord>() { @Override public void onUi(NewWord newWord) { XRAdapter mxradapter=new XRAdapter(getActivity(),newWord.getData()); recyclerview.setAdapter(mxradapter); } @Override public void onFailed(Call call, IOException e) { } }); } }
大的适配器。。。
package com.five.adapter; import android.content.Context; 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 com.five.R; import com.five.view.geLoader; import java.util.ArrayList; public class XRAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ NewWord.DataBean list; Context mcontext; ArrayList mlist; //枚举类型 private enum Item_Type{ Typeone ,Typetwo,Typethree,Typefour,Typefive,Typesix } public XRAdapter(Context context, NewWord.DataBean data) { this.mcontext=context; this.list=data; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View mView=null; if (viewType == Item_Type.Typeone.ordinal()) { mView= LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_a, null); ViewHolderA viewHolder = new ViewHolderA(mView); return viewHolder; } else if (viewType == Item_Type.Typetwo.ordinal()) { mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item_b, null); ViewHolderB viewHolder = new ViewHolderB(mView); return viewHolder; }else if (viewType == Item_Type.Typethree.ordinal()) { mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item_c, null); ViewHolderC viewHolder = new ViewHolderC(mView); return viewHolder; }else if (viewType == Item_Type.Typefour.ordinal()) { mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item_d, null); ViewHolderD viewHolder = new ViewHolderD(mView); return viewHolder; }else if (viewType == Item_Type.Typefive.ordinal()) { mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item_e, null); ViewHolderE viewHolder = new ViewHolderE(mView); return viewHolder; }else if (viewType == Item_Type.Typesix.ordinal()) { mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item_f, null); ViewHolderF viewHolder = new ViewHolderF(mView); return viewHolder; } return null; } /** * 绑定数据:可以直接拿到已经绑定控件的Viewholder对象 * * @param holder * @param position */ @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof ViewHolderA) { mlist=new ArrayList(); for(int i=0;i<list.getDefaultGoodsList().size();i++){ mlist.add(list.getDefaultGoodsList().get(i).getGoods_img()); } //设置图片加载器 ((ViewHolderA) holder).mbanner.setImageLoader(new geLoader()); ((ViewHolderA) holder).mbanner.setImages(mlist); ((ViewHolderA) holder).mbanner.start(); } else if (holder instanceof ViewHolderB) { ((ViewHolderB) holder).recyclerViewb.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL)); ((ViewHolderB) holder).recyclerViewb.setAdapter(new TouAdapter(list.getAd5(),mcontext)); ((ViewHolderB) holder).countdownView.start(1000000000); }else if (holder instanceof ViewHolderC) { ((ViewHolderC) holder).recycler.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); ((ViewHolderC) holder).recycler.setAdapter(new HomeAdapter(list.getAd1(),mcontext)); }else if (holder instanceof ViewHolderD) { ((ViewHolderD) holder).recycler.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); ((ViewHolderD) holder).recycler.setAdapter(new HomesAdater(mcontext,list.getAd8())); }else if (holder instanceof ViewHolderE) { ((ViewHolderE) holder).recycler.setLayoutManager(new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL)); ((ViewHolderE) holder).recycler.setAdapter(new Hua_Shang(mcontext,list.getSubjects())); }else if (holder instanceof ViewHolderF) { ((ViewHolderF) holder).recycler.setLayoutManager(new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.HORIZONTAL)); ((ViewHolderF) holder).recycler.setAdapter(new Hua_Xia(mcontext,list.getAd1())); } } @Override public int getItemCount() { return 6; } //返回值赋值给onCreateViewHolder的参数 viewType @Override public int getItemViewType(int position) { // return super.getItemViewType(position); if (position == 0) { return Item_Type.Typeone.ordinal(); } else if (position == 1) { return Item_Type.Typetwo.ordinal(); }else if (position == 3) { return Item_Type.Typethree.ordinal(); }else if (position == 5) { return Item_Type.Typefour.ordinal(); }else if (position == 2) { return Item_Type.Typefive.ordinal(); }else if (position == 4) { return Item_Type.Typesix.ordinal(); } return -1; } }
弄完布局之后重要的就是要怎么用添加适配器给他添加数据,,这里是要显示多条目,,所以在用的时候肯定不是一个布局
这个就是要在里面用到的viewholder,,我这里因为是使用了留个布局所以就建立了留个不同的类
因为里面六个基本都是一样的所以就不附带其他的代码了
这个呢是他们留个里面多条目布局需要用的布局
package com.five.view; import android.content.Context; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.youth.banner.loader.ImageLoader; public class geLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } }
里面基本也都是一样的我就不一一列举了
下面的这些是多条目里面如果是recycle人view那么也要给他们进行一些适配器,,我这里是每个不同的就给了个布局也可以使用同一个适配器,,具体的我就不列举了
废话不多说,,直接看代码
package com.five.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.five.R; import java.util.List; public class TouAdapter extends RecyclerView.Adapter<TouAdapter.TouHolder> { Context context; List<NewWord.DataBean.Ad5Bean> ad5Bean; public TouAdapter(List<NewWord.DataBean.Ad5Bean> ad5Bean, Context context) { this.ad5Bean = ad5Bean; this.context = context; } @Override public TouHolder onCreateViewHolder(ViewGroup parent, int viewType) { TouHolder holders = new TouHolder(LayoutInflater.from( context).inflate(R.layout.item_tou, parent, false)); return holders; } @Override public void onBindViewHolder(TouHolder holders, int position) { holders.tv.setText(ad5Bean.get(position).getTitle()); Glide.with(context).load(ad5Bean.get(position).getImage()).into(holders.img); } @Override public int getItemCount() { return ad5Bean.size(); } class TouHolder extends RecyclerView.ViewHolder { TextView tv; ImageView img; public TouHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.tou_text); img = (ImageView) view.findViewById(R.id.tou_img); } } }
这几个一定要注意。。。