XRecyclerView下拉刷新,上拉加载
来源:互联网 发布:qt淘宝互刷平台2017 编辑:程序博客网 时间:2024/06/05 19:46
在RecyclerView的上拉加载使用会比较麻烦,而XRecyclerView非常方便的决解了这些问题,都已经封装好了,我们只需要调用方法就OK了。下面是XRecyclerView的使用。
因为接口原因这里我只做了一个下拉刷新
配置build.gradle文件中直接添加依赖
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
在布局中:
<com.jcodecraeer.xrecyclerview.XRecyclerView android:layout_width="match_parent" android:id="@+id/xre_xrv" android:layout_height="match_parent"> </com.jcodecraeer.xrecyclerview.XRecyclerView>
在Activity中:
public class RxActivity extends AppCompatActivity { private XRecyclerView xr; private List<String > list=new ArrayList<>(); //获取数据的开始 private int curr; private XRAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_rx); //初始化xr xr= (XRecyclerView) findViewById(R.id.xre_xrv); //加布局管理器 LinearLayoutManager layoutManager=new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); xr.setLayoutManager(layoutManager); //允许刷新加载 xr.setPullRefreshEnabled(true); xr.setLoadingMoreEnabled(true); xr.setLoadingListener(new XRecyclerView.LoadingListener() { //刷新 @Override public void onRefresh() { curr=0; list.clear(); getData(API.TYPE_HOME,curr); xr.refreshComplete(); } //加载 @Override public void onLoadMore() { /* curr++; getData(API.TYPE_HOME,curr); xr.loadMoreComplete();*/ } }); getData(API.TYPE_HOME,1); } //初始化数据 private void getData(String url,int curr){ OkHttp3Utils.getInstance().doGet(url, new GsonObjectCallback<HomeBean>() { @Override public void onUi(HomeBean homeBean) { homeBean.getMsg(); //关联适配器,并将集合传入适配器 XRAdapter mxradapter=new XRAdapter(RxActivity.this,homeBean.getData()); xr.setAdapter(mxradapter); } @Override public void onFailed(Call call, IOException e) { } }); }}
这里是一个RecyclerView的多条目加载
适配器:
public class XRAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ HomeBean.DataBean list; Context mcontext; ArrayList mlist; //枚举类型 private enum Item_Type{ Typeone ,Typetwo,Typethree,Typefour } public XRAdapter(Context context, HomeBean.DataBean data) { this.mcontext=context; this.list=data; } /** * 创建ViewHolder * * @param parent * @param viewType :不同ItemView的类型 * @return */ @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == Item_Type.Typeone.ordinal()) { View 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()) { View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_b, null); ViewHolderB viewHolder = new ViewHolderB(mView); return viewHolder; } else if (viewType == Item_Type.Typethree.ordinal()) { View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_c, null); ViewHolderC viewHolder = new ViewHolderC(mView); return viewHolder; }else if (viewType == Item_Type.Typefour.ordinal()) { View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_d, null); ViewHolderD viewHolder = new ViewHolderD(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.getAd1().size();i++){ mlist.add(list.getAd1().get(i).getImage()); } //设置图片加载器 ((ViewHolderA) holder).mbanner.setImageLoader(new GlideImaGlideImageLoader()); ((ViewHolderA) holder).mbanner.setImages(mlist); ((ViewHolderA) holder).mbanner.start(); } else if (holder instanceof ViewHolderB) { ((ViewHolderB) holder).text.setText(list.getDefaultGoodsList().get(position).getGoods_name() + "------样式二"); } else if (holder instanceof ViewHolderC) { ((ViewHolderC) holder).text.setText(list.getDefaultGoodsList().get(position).getGoods_name()+ "------样式三"); }else if (holder instanceof ViewHolderD) { ((ViewHolderD) holder).text.setText(list.getDefaultGoodsList().get(position).getGoods_name()+ "------样式4"); } } @Override public int getItemCount() { return 4; } //返回值赋值给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 == 2) { return Item_Type.Typethree.ordinal(); }else if (position == 3) { return Item_Type.Typefour.ordinal(); } return -1; } class ViewHolderA extends RecyclerView.ViewHolder { public Banner mbanner; public ViewHolderA(View itemView) { super(itemView); mbanner = (Banner) itemView.findViewById(R.id.mybanner); } } class ViewHolderB extends RecyclerView.ViewHolder { public TextView text; public ViewHolderB(View itemView) { super(itemView); text = (TextView) itemView.findViewById(R.id.tvb); } } class ViewHolderC extends RecyclerView.ViewHolder { public TextView text; public ViewHolderC(View itemView) { super(itemView); text = (TextView) itemView.findViewById(R.id.tvc); } } class ViewHolderD extends RecyclerView.ViewHolder { public TextView text; public ViewHolderD(View itemView) { super(itemView); text = (TextView) itemView.findViewById(R.id.tvd); } }}
阅读全文
0 0
- XRecyclerView下拉刷新和上拉加载
- XRecyclerView上拉刷新下拉加载
- XRecyclerView 上拉刷新、下拉加载
- XRecyclerView 上拉加载 下拉刷新
- XRecyclerView下拉刷新,上拉加载
- 使用XRecyclerview下拉刷新,上拉加载
- XRecyclerView的上拉加载,下拉刷新
- XRecyclerView+上拉加载下拉刷新+多条目加载
- 支持下拉刷新上拉加载xrecyclerview的基本使用
- XRecyclerView 实现下拉刷新和上拉加载更多
- xRecyclerView简单实现下拉刷新和上拉加载
- xRecyclerView简单实现下拉刷新和上拉加载
- Xrecyclerview的使用(上拉刷新,下拉加载)
- Android XRecyclerView简单实现上拉刷新,下拉加载
- XRecyclerView的下拉刷新上拉加载功能
- XRecyclerView的下拉刷新和上拉加载
- RecyclerView的上拉加载下拉刷新-xRecyclerView
- Mvp+OkHttp+XRecyclerView------上拉加载下拉刷新
- 正则表达式常用语法总结
- HttpClient用户指南 OverView
- html5 新标签支持js写法
- 关于WEB-INF目录的文件访问问题
- TexturePacker 拆解工具
- XRecyclerView下拉刷新,上拉加载
- 关于Linux的c编译器和汇编器
- 数学笔记14——微积分第一基本定理
- Http协议
- 4.Spring Cloud:服务消费(Feign)【Dalston版】
- leetcode_307.Range Sum Query
- Javascript中bind()方法的使用与实现
- targetlik
- Java学习心得之线程(二)