ARecyclerView,一个库搞定recyclerview
来源:互联网 发布:linux打印行号 编辑:程序博客网 时间:2024/06/08 06:16
ARecyclerView
对RecyclerView的封装,功能强大、使用简单、扩展性强。该库主要分成三部分:RecyclerAdapter、XRecyclerView、XRecyclerContentLayout
该库在商业项目中历经一年多时间打磨,欢迎star、fork,后期会有更多分享,期待您的建议和关注。
- ARecyclerView
- 使用
- RecyclerAdapter
- 使用示例
- XRecyclerView
- 使用示例
- XRecyclerContentLayout
- 使用示例
- 自定义LoadMoreView的实现
- 自定义实现XRecyclerContentLayout
使用
- Gradle : compile ‘cn.droidlover:XRecyclerView:1.0.0’
- Github : ARecyclerView
RecyclerAdapter
RecyclerAdapter简化了Adapter的开发,封装了一些常用的逻辑,包括数据集合操作、接口监听RecyclerItemCallback可以满足99%的需求。
使用示例
public class TestRecAdapter extends RecyclerAdapter<TestRecAdapter.Item, TestRecAdapter.ViewHolder> { @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { } @Override public void onBindViewHolder(ViewHolder holder, int position) { }}
XRecyclerView
XRecyclerView是对RecyclerView的封装,其主要特性包括:
- 一行代码添加、删除、修改Header或者Footer
- 一行代码添加默认的上拉加载效果
- 一行代码切换自定义上拉加载效果
- 一行代码轻松添加LayoutManager
- 一行代码添加divider
- Adapter规范及封装RecyclerAdapter
使用示例
recyclerView.verticalLayoutManager(this) //设置layoutManager .setAdapter(adapter); //设置AdapterrecyclerView.horizontalDivider(R.color.x_red, R.dimen.divider_height); //设置dividerrecyclerView.setOnRefreshAndLoadMoreListener(new XRecyclerView.OnRefreshAndLoadMoreListener() { //设置刷新和上拉加载监听 @Override public void onRefresh() { loadData(1); } @Override public void onLoadMore(int page) { loadData(page); } });recyclerView.useDefLoadMoreView(); //使用默认的上拉刷新样式recyclerView.addHeaderView(headView); //添加headerrecyclerView.addFooterView(footview); //添加footerrecyclerView.removeHeaderView(headview); //删除headerrecyclerView.removeFooterView(footview); //删除footer
XRecyclerContentLayout
XRecyclerContentLayout继承了QTContentLayout,可自定义Loading、Error、Empty、Content四种显示状态,满足了绝大部分需求.
使用示例
<cn.droidlover.xrecyclerview.XRecyclerContentLayout android:id="@+id/contentLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:recyclerBackgroundColor="#f5f5f5" app:recyclerScrollbarNone="true" app:recyclerScrollbarStyle="outsideOverlay" />
contentLayout.loadingView(new LoadingView(this)); .errorView(new ErrorView(this)); .emptyView(new EmptyView(this));contentLayout.showLoading();contentLayout.showError();contentLayout.showEmpty();contentLayout.showContent();
自定义LoadMoreView的实现
自定义LoaderMoreView只需实现LoadMoreUIHandler接口,然后调用xrecyclerView的loadMoreFooterView(loadMoreView)方法即可。
@Override public void onLoading() { setVisibility(VISIBLE); tvMsg.setText("加载中"); progressBar.setVisibility(VISIBLE); } @Override public void onLoadFinish(boolean hasMore) { if (hasMore) { setVisibility(GONE); } else { setVisibility(VISIBLE); tvMsg.setText("没有更多数据"); progressBar.setVisibility(GONE); } }
设置loadMoreView
recyclerView.loadMoreFooterView(loadMoreView);
自定义实现XRecyclerContentLayout
在XRecyclerContentLayout中内置了SwipeRefreshLayout下拉刷新样式,您也可以自定义实现XRecyclerContentLayout,只需实现XRecyclerView.StateCallback接口即可.
public interface StateCallback { void notifyEmpty(); //数据为空 void notifyContent(); //显示contentview void refreshState(boolean isRefresh); //更新刷新状态 void refreshEnabled(boolean isEnabled); //刷新是否可用 }
详情demo可见app module。
1 0
- ARecyclerView,一个库搞定recyclerview
- 用一个RecyclerView 搞定所有布局
- 一个RecyclerView搞定Listview、Gridview、瀑布流等
- 不用再写RecyclerView的Adapter了,一个Adapter搞定
- 不用再写RecyclerView的Adapter了,一个Adapter搞定
- RecyclerView Adapter 优雅封装,一个Adapter搞定所有列表
- 一个库搞定各种分享--ShareSDK
- 十秒钟搞定RecyclerView数据绑定
- RecyclerView Adapter 优雅封装搞定所有列表
- Android一行代码搞定RecyclerView的一切!
- 搞定一个BUG!
- 自动更新,一个方法搞定
- RecyclerView 的一个陷阱
- RecyclerView条目动画,超简单,一行代码搞定
- 一个变量搞定求和运算
- 一个电话就搞定火车票
- 六步骤搞定一个项目
- 一个命令行搞定硬件信息
- Servlet学习之一开发Servlet的三种方法
- 理解临时对象的来源
- notepad++保存后中文乱码的问题
- iOS开发 AFNetworking 关于JSON text did not start with array or object and option to allow fragments not
- (第十二周项目3)图遍历算法实现
- ARecyclerView,一个库搞定recyclerview
- Android Service后台进程守护
- opencv3.1.0+cuda8.0+vs2013+win7编译过程错误及解决方法
- UIImagePickerController status Bar can not hidden in IOS 10
- 电商Hadoop项目第一天
- 十二周项目四--利用遍历思想求解图问题(6-7)
- 第十二周项目5 - 迷宫问题之图深度优先遍历解法
- 第十二周 图的广度优先遍历
- CocoStudio 在c++响应回调方法