多条目布局的简单使用

来源:互联网 发布:php如何调用静态方法 编辑:程序博客网 时间:2024/06/06 01:44

首先就是要给他一个布局
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);        }    }}








这几个一定要注意。。。