多条目布局的简单使用
来源:互联网 发布: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); } }}
这几个一定要注意。。。
阅读全文
0 0
- 多条目布局的简单使用
- RecycleView 的多条目布局
- android RecycleView复杂多条目的布局
- 多条目加载--->(如:新闻的布局)
- 多条目布局
- 多条目布局
- 多条目布局
- xrecyclerview多条目布局
- recyclerView多条目布局
- 简单的多条目适配器代码 ,:---------两种条目样式
- RecyclerView使用 以及简单多条目
- ListView多条目展示的简单实现
- 多条目展示ListView(如:有两种不同的布局图片在listview条目上展示)
- 安卓多条目加载专用布局 与多条目加载的专用适配器
- 安卓多条目加载专用布局 与多条目加载的专用适配器
- RecyclerView简单多条目
- Xlistview实现多条目布局
- Android中多条目布局
- Java进阶面试问题列表
- STM32调试小结
- Python爬虫小实践:寻找失踪人口,爬取失踪儿童信息并写成csv文件,方便存入数据库
- java反射机制理解
- Laravel安装设置~/.composer/vendor/bin 路径加到 PATH
- 多条目布局的简单使用
- Mybatis传多个参数
- TreeMap、HashMap、LindedHashMap的区别
- yii2.0 with 筛选问题
- jeecg 图片上传
- cannot jump from switch statement to this case
- glob模式-简单说
- Ajax样本
- MXNet设计和实现简介