添加 build 依赖
//1.0.5 当1.1.0出现问题可以回退到1.0.5.1
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'
compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.5.1'//没有使用特殊Header,可以不加这行compile 'com.android.support:design:25.3.1'//版本随意(非必须,引用可以解决无法预览问题)
/** * 刷新的辅助类 所有调用的方法在这里处理 */ public class SmartRefreshUtils { private static final int FIRST_PAGE = 0; private final RefreshLayout mRefreshLayout; private RefreshListener mRefreshListener = null; private LoadMoreListener mLoadMoreListener = null; private int currentPage = FIRST_PAGE; private int perPageCount = 0; //初始化 public static SmartRefreshUtils with(RefreshLayout layout, Context context) {
layout.setRefreshHeader(new ClassicsHeader(context));//设置头部 样式layout.setRefreshFooter(new ClassicsFooter(context));//设置尾部样式 return new SmartRefreshUtils(layout); } private SmartRefreshUtils(RefreshLayout layout) { mRefreshLayout = layout; mRefreshLayout.setEnableAutoLoadMore(false); mRefreshLayout.setEnableOverScrollBounce(true); } public SmartRefreshUtils pureScrollMode() { mRefreshLayout.setEnableRefresh(false); mRefreshLayout.setEnableLoadMore(false); mRefreshLayout.setEnablePureScrollMode(true); mRefreshLayout.setEnableNestedScroll(true); mRefreshLayout.setEnableOverScrollDrag(true); return this; } public SmartRefreshUtils setRefreshListener(@Nullable RefreshListener refreshListener) { this.mRefreshListener = refreshListener; if (refreshListener == null) { mRefreshLayout.setEnableRefresh(false); } else { mRefreshLayout.setEnablePureScrollMode(false); mRefreshLayout.setEnableRefresh(true); mRefreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh(@NonNull RefreshLayout refreshLayout) { refreshLayout.finishRefresh((int) Config.HTTP_TIMEOUT, false); mRefreshListener.onRefresh(); } }); } return this; } public SmartRefreshUtils setLoadMoreListener(LoadMoreListener loadMoreListener) { this.mLoadMoreListener = loadMoreListener; if (loadMoreListener == null) { mRefreshLayout.setEnableLoadMore(false); } else { mRefreshLayout.setEnablePureScrollMode(false); mRefreshLayout.setEnableLoadMore(true); mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @Override public void onLoadMore(@NonNull RefreshLayout refreshLayout) { refreshLayout.finishLoadMore((int) Config.HTTP_TIMEOUT); mLoadMoreListener.onLoadMore(); } }); } return this; } public void autoRefresh() { mRefreshLayout.autoRefresh(); } public void autoLoadMore() { mRefreshLayout.autoLoadMore(); } public void success() { mRefreshLayout.finishRefresh(true); mRefreshLayout.finishLoadMore(true); } public void fail() { mRefreshLayout.finishRefresh(false); mRefreshLayout.finishLoadMore(false); } public interface RefreshListener { void onRefresh(); } public interface LoadMoreListener { void onLoadMore(); } }
布局样式