Android studio已经普遍了,开发过程中会使用到下拉刷新和加载更多,类似PULL-to-Refresh,xrecyclerview,SwipeRefreshLayoutd 等等。
现在介绍下最近git找到的下拉刷新,加载更多,很实用(群218801658,小生只是转载,转载。)
支持ListView,GridView,REcyclerView,ScrollView,ExpandableListView等的下拉刷新和加载更多。
如图:
demo下载地址:
1.只介绍as怎么使用。
- 使用加载更多控件库
compile 'cn.finalteam.loadingviewfinal:loading-more-view:1.0.1'
- 采用SwipeRefreshLayout下拉刷新库
compile 'cn.finalteam.loadingviewfinal:swipe-refresh-layout:1.0.1'
- 采用UPTR下拉刷新
compile 'cn.finalteam.loadingviewfinal:ultra-pull-to-refresh:1.0.1'
- Load More Footer样式
compile 'cn.finalteam.loadingviewfinal:loading-more-style:1.0.1'
- 如果你项目中使用了RecyclerView控件请添加
compile 'com.android.support:recyclerview-v7:23.2.1'//recyclerview随便哪个版本都可以,没有强制使用23.2.1
SwipeRefreshLayout和UPTR两个下拉刷新库可以二选一
2.代码详解* 自动刷新
mPtrLayout.autoRefresh();
* 设置下拉刷新监听
mPtrLayout.setOnRefreshListener(new OnDefaultRefreshListener() {
@Override
public void onRefreshBegin(PtrFrameLayout frame) {
//发起下拉刷新请求
requestData(1);
}
});
* 设置加载更多事件监听
mRecyclerViewFinal.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void loadMore() {
//发起加载更多请求
requestData(mPage);
}
});
* 设置是否有更多
mRecyclerViewFinal.setHasLoadMore(true/false);
* 设置网络异常FooterView信息
mRecyclerViewFinal.showFailUI();
* 完成刷新或完成加载功能调用
if (page == 1) { //page == 1表示下拉下拉
mPtrRvLayout.onRefreshComplete();//完成下拉刷新
} else {
mRecyclerViewFinal.onLoadMoreComplete();//完成加载更多
}
* 自定义Load More View样式
设置自定义样式请在setAdapter之前。
AVLoadMoreView avLoadMoreView = LoadMoreStyle.getAVLoadMoreViewFactory(context);
avLoadMoreView.setIndicatorColor(getResources().getColor(R.color.colorPrimary));
avLoadMoreView.setIndicatorId(AVLoadingIndicatorView.BallPulse);
mRecyclerViewFinal.setLoadMoreView(avLoadMoreView);
- 设置没有更多了是否隐藏footerview
mRecyclerViewFinal.setNoLoadMoreHideView(true/false);//默认false不隐藏
注:onLoadMoreComplete()一定要在setHasLoadMore()和showFailUI()之后调用
具体GIT地址:https://github.com/pengjianbo/LoadingViewFinal(纯属转载,为广大开发推荐好用的框架)