Android-RecyclerViewHelper

Introduction: RecyclerView 的工具类,更方便的实现 Adapter,item 点击事件,更快的实现加载提示,分页加载。
More: Author   ReportBugs   
Tags:
RecyclerView-CommonAdapter-分页加载-加载提示-

介绍

方便快捷的 RecyclerView 工具类,支持添加自定义的 header,footer 布局,加载 tips,分页加载。

使用

  • 导入 lib-RecyclerViewHelper
  • 具体实现 ```java

//使用 helper 实现分页加载和加载的 Tips recyclerViewHelper = new RecyclerViewHelper(list_container, listAdapter);

//设置没有数据的 Tips recyclerViewHelper.setTipsEmptyView(R.layout.view_data_empty); //设置加载中的 Tips recyclerViewHelper.setTipsLoadingView(R.layout.view_data_loading); //设置加载失败的 Tips recyclerViewHelper.setTipsErrorView(R.layout.view_data_error); //设置 header recyclerViewHelper.setHeaderView(R.layout.view_header);

//默认加载更多 footer 也可自定义 recyclerViewHelper.useDefaultFooter();

//加载失败,没有数据时 Tips 的接口 recyclerViewHelper.setTipsListener(new TipsListener() { @Override public void retry() { //重新加载操作 } });

//加载更多的接口 recyclerViewHelper.setLoadMoreListener(new LoadMoreListener() { @Override public void loadMore() { //加载下一页操作 } });

recyclerViewHelper.setOnViewBindListener(new OnViewBindListener() { @Override public void onBind(RecyclerView.ViewHolder holder, int viewType) { Log.d(MainActivity.class.getName(), "==============onBind============"); if (ViewType.TYPE_HEADER == viewType) { // TODO: 2017/7/13 header view bind } else if (ViewType.TYPE_FOOTER == viewType) { // TODO: 2017/7/13 footer view bind } } });

recyclerViewHelper.setFooterChangeListener(new OnFooterChangeListener() { @Override public void onChange(RecyclerView.ViewHolder holder, int state) { Log.d(MainActivity.class.getName(), "==============onChange============"); if (FooterState.LOADING == state) { // TODO: 2017/7/13 加载中 } else if (FooterState.ERROR == state) { // TODO: 2017/7/13 加载失败 } else if (FooterState.NO_MORE == state) { // TODO: 2017/7/13 加载完成 } } });

/加载成功 1. 若没有数据则显示 tips 没有数据 2. 若已有数据且 hasMore=true 刷新 adapter 3. 若已有数据且 hasMore=fale 刷新 footer 显示加载完成 / recyclerViewHelper.loadComplete(hasMore);

/加载失败 1. 若没有数据则显示 tips 加载失败 2. 若已有数据则显示加载失败 */ recyclerViewHelper.loadError();

// /手动设置加载中(极少使用) 1. 若没有数据则显示 tips 加载中... 2. 若已有数据则显示 footer 加载中... */ recyclerViewHelper.loadStart();

```

Demo

演示

感谢

关于我

如果对你有帮助,请 star 一下,然后 follow 我,给我增加一下分享动力,谢谢!

如果你有什么疑问或者问题,可以提交 issue 和 request,发邮件给我 jeanboy@foxmail.com 。

或者加入下面的 QQ 群来一起学习交流。

Android 技术进阶:386463747

License

Copyright 2015 jeanboy

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea