refreshLayout.setEnableAutoLoadMore(false);//使上拉加载具有弹性效果
    
    refreshLayout.setEnableOverScrollDrag(false);//禁止越界拖动(1.0.4以上版本)
    
    refreshLayout.setEnableOverScrollBounce(false);//关闭越界回弹功能
   
app:srlEnableFooterFollowWhenLoadFinished="true"提示文字跟随
    //下面示例中的值等于默认值
    
    RefreshLayout refreshLayout = (RefreshLayout)findViewById(R.id.refreshLayout);
   
    //在项目中使用到的方法
    
    refreshLayout.setEnableRefresh(true);//是否启用下拉刷新功能
    
    refreshLayout.setEnableLoadMore(false);//是否启用上拉加载功能
    
    refreshLayout.setEnableAutoLoadMore(true);//是否启用列表惯性滑动到底部时自动加载更多
    
    refreshLayout.setEnableLoadMoreWhenContentNotFull(true);//是否在列表不满一页时候开启上拉加载功能
    
    refreshLayout.setEnableOverScrollBounce(true);//是否启用越界回弹
    
    refreshLayout.setEnableOverScrollDrag(false);//是否启用越界拖动(仿苹果效果)1.0.4
    
    refreshLayout.autoRefresh();//自动刷新
    
    refreshLayout.autoLoadMore();//自动加载
    
    refreshLayout.setRefreshHeader(new ClassicsHeader(context));//设置Header
    
    refreshLayout.setRefreshFooter(new ClassicsFooter(context));//设置Footer
    
    /*
    
    这几个方法是比较重要的
    
    */
    
    // 这两个方法是在加载成功并且还有数据的情况下调用的
    
    refreshLayout.finishRefresh();//结束刷新
    
    refreshLayout.finishLoadMore();//结束加载
    
    // 这两个方法是在加载失败时调用的
    
    refreshLayout.finishRefresh(false);//结束刷新(刷新失败)
    
    refreshLayout.finishLoadMore(false);//结束加载(加载失败)
    
    // 这个方法是在最后一页,没有更多数据时调用的,会在页面底部标记没有更多数据
    
    refreshLayout.finishLoadMoreWithNoMoreData();//完成加载并标记没有更多数据 1.0.4
    
    // 这个方法最重要,当在最后一页调用完上一个完成加载并标记没有更多数据的方法时,需要将refreshLayout的状态更改为还有更多数据的状态,此时就需要调用此方法,参数为false代表还有更多数据,true代表没有更多数据
    
    refreshLayout.setNoMoreData(false);//恢复没有更多数据的原始状态 1.0.5
   
    
    // 这里需要注意这几个结束加载和结束刷新的方法,分好几种使用的情况,可以在不同的情况下使用
    
    /**
    
    * 完成刷新
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishRefresh();
   
    /**
    
    * 完成刷新
    
    * @param delayed 开始延时
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishRefresh(int delayed);
   
    /**
    
    * 完成加载
    
    * @param success 数据是否成功刷新 (会影响到上次更新时间的改变)
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishRefresh(boolean success);
   
    /**
    
    * 完成刷新
    
    * @param delayed 开始延时
    
    * @param success 数据是否成功刷新 (会影响到上次更新时间的改变)
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishRefresh(int delayed, boolean success);
   
    /**
    
    * 完成加载
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishLoadMore();
   
    /**
    
    * 完成加载
    
    * @param delayed 开始延时
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishLoadMore(int delayed);
   
    /**
    
    * 完成加载
    
    * @param success 数据是否成功
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishLoadMore(boolean success);
   
    /**
    
    * 完成加载
    
    * @param delayed 开始延时
    
    * @param success 数据是否成功
    
    * @param noMoreData 是否有更多数据
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishLoadMore(int delayed, boolean success, boolean noMoreData);
   
    /**
    
    * 完成加载并标记没有更多数据
    
    * @return RefreshLayout
    
    */
    
    RefreshLayout finishLoadMoreWithNoMoreData();
    
    /*
   
    */
    
    refreshLayout.autoRefresh(400);//延迟400毫秒后自动刷新
    
    refreshLayout.autoLoadMore(400);//延迟400毫秒后自动加载
   
    
    refreshLayout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);
    
    refreshLayout.setDragRate(0.5f);//显示下拉高度/手指真实下拉高度=阻尼效果
    
    refreshLayout.setReboundDuration(300);//回弹动画时长(毫秒)
    
    refreshLayout.setHeaderHeight(100);//Header标准高度(显示下拉高度>=标准高度 触发刷新)
    
    refreshLayout.setHeaderHeightPx(100);//同上-像素为单位 (V1.1.0删除)
    
    refreshLayout.setFooterHeight(100);//Footer标准高度(显示上拉高度>=标准高度 触发加载)
    
    refreshLayout.setFooterHeightPx(100);//同上-像素为单位 (V1.1.0删除)
    
    refreshLayout.setFooterHeaderInsetStart(0);//设置 Header 起始位置偏移量 1.0.5
    
    refreshLayout.setFooterHeaderInsetStartPx(0);//同上-像素为单位 1.0.5 (V1.1.0删除)
    
    refreshLayout.setFooterFooterInsetStart(0);//设置 Footer 起始位置偏移量 1.0.5
    
    refreshLayout.setFooterFooterInsetStartPx(0);//同上-像素为单位 1.0.5 (V1.1.0删除)
    
    refreshLayout.setHeaderMaxDragRate(2);//最大显示下拉高度/Header标准高度
    
    refreshLayout.setFooterMaxDragRate(2);//最大显示下拉高度/Footer标准高度
    
    refreshLayout.setHeaderTriggerRate(1);//触发刷新距离 与 HeaderHeight 的比率1.0.4
    
    refreshLayout.setFooterTriggerRate(1);//触发加载距离 与 FooterHeight 的比率1.0.4
    
    refreshLayout.setEnablePureScrollMode(false);//是否启用纯滚动模式
    
    refreshLayout.setEnableNestedScroll(false);//是否启用嵌套滚动
    
    refreshLayout.setEnableScrollContentWhenLoaded(true);//是否在加载完成时滚动列表显示新的内容
    
    refreshLayout.setEnableHeaderTranslationContent(true);//是否下拉Header的时候向下平移列表或者内容
    
    refreshLayout.setEnableFooterTranslationContent(true);//是否上拉Footer的时候向上平移列表或者内容
    
    refreshLayout.setEnableFooterFollowWhenLoadFinished(false);//是否在全部加载结束之后Footer跟随内容1.0.4
    
    refreshLayout.setEnableScrollContentWhenRefreshed(true);//是否在刷新完成时滚动列表显示新的内容 1.0.5
    
    refreshLayout.srlEnableClipHeaderWhenFixedBehind(true);//是否剪裁Header当时样式为FixedBehind时1.0.5
    
    refreshLayout.srlEnableClipFooterWhenFixedBehind(true);//是否剪裁Footer当时样式为FixedBehind时1.0.5
    
    refreshLayout.setDisableContentWhenRefresh(false);//是否在刷新的时候禁止列表的操作
    
    refreshLayout.setDisableContentWhenLoading(false);//是否在加载的时候禁止列表的操作
    
    refreshLayout.setOnMultiPurposeListener(new SimpleMultiPurposeListener());//设置多功能监听器
    
    refreshLayout.setScrollBoundaryDecider(new ScrollBoundaryDecider());//设置滚动边界判断
    
    refreshLayout.setScrollBoundaryDecider(new ScrollBoundaryDeciderAdapter());//自定义滚动边界
    
    refreshLayout.setRefreshContent(new View(context));//设置刷新Content(用于动态替换空布局,不推荐)1.0.4
    
    refreshLayout.resetNoMoreData();//恢复没有更多数据的原始状态 1.0.4(1.1.0删除)
   
1、在build.gradle中添加依赖
    //1.1.0 API改动过大,老用户升级需谨慎
    
    compile ‘com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-6’
    
    compile ‘com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-6’//没有使用特殊Header,可以不加这行
    
    compile ‘com.android.support:appcompat-v7:25.3.1’//版本 23以上(必须)
   
    //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:appcompat-v7:25.3.1’//版本 23以上(必须)
    
    compile ‘com.android.support:design:25.3.1’//版本随意(非必须,引用可以解决无法预览问题)
    
   
2、在布局文件中添加SmartRereshLayout
    <?xml version=”1.0″ encoding=”utf-8″?>
    
    <com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android=”http://schemas.android.com/apk/res/android”
    
    android:id=”@+id/refreshLayout”
    
    android:layout_width=”match_parent”
    
    android:layout_height=”match_parent”>
    
    <android.support.v7.widget.RecyclerView
    
    android:id=”@+id/recyclerView”
    
    android:layout_width=”match_parent”
    
    android:layout_height=”match_parent”
    
    android:overScrollMode=”never”
    
    android:background=”#fff” />
    
    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
    
   
3、在Activity或fragment中添加代码
    RefreshLayout refreshLayout = (RefreshLayout)findViewById(R.id.refreshLayout);
    
    refreshLayout.setOnRefreshListener(new OnRefreshListener() {
    
    
    @Override
    
    public void onRefresh(RefreshLayout refreshlayout) {
    
    
    refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
    
    }
    
    });
    
    refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
    
    
    @Override
    
    public void onLoadMore(RefreshLayout refreshlayout) {
    
    
    refreshlayout.finishLoadMore(2000/*,false*/);//传入false表示加载失败
    
    }
    
    });
    
   
    4、使用指定的Header和Footer
    
    方法一 全局设置
   
    public class App extends Application {
    
    
    //static 代码段可以防止内存泄露
    
    static {
    
    
    //设置全局的Header构建器
    
    SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
    
    
    @Override
    
    public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
    
    
    layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);//全局设置主题颜色
    
    return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat(“更新于 %s”));//指定为经典Header,默认是 贝塞尔雷达Header
    
    }
    
    });
    
    //设置全局的Footer构建器
    
    SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
    
    
    @Override
    
    public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
    
    
    //指定为经典Footer,默认是 BallPulseFooter
    
    return new ClassicsFooter(context).setDrawableSize(20);
    
    }
    
    });
    
    }
    
    }
    
   
注意:方法一 设置的Header和Footer的优先级是最低的,如果同时还使用了方法二、三,将会被其它方法取代
方法二 XML布局文件指定
    <com.scwang.smartrefresh.layout.SmartRefreshLayout
    
    xmlns:app=”http://schemas.android.com/apk/res-auto”
    
    android:id=”@+id/refreshLayout”
    
    android:layout_width=”match_parent”
    
    android:layout_height=”match_parent”
    
    android:background=”#444444″
    
    app:srlPrimaryColor=”#444444″
    
    app:srlAccentColor=”@android:color/white”
    
    app:srlEnablePreviewInEditMode=”true”>
    
    <!–srlAccentColor srlPrimaryColor 将会改变 Header 和 Footer 的主题颜色–>
    
    <!–srlEnablePreviewInEditMode 可以开启和关闭预览功能–>
    
    <com.scwang.smartrefresh.layout.header.ClassicsHeader
    
    android:layout_width=”match_parent”
    
    android:layout_height=”wrap_content”/>
    
    <TextView
    
    android:layout_width=”match_parent”
    
    android:layout_height=”match_parent”
    
    android:padding=”@dimen/padding_common”
    
    android:background=”@android:color/white”
    
    android:text=”@string/description_define_in_xml”/>
    
    <com.scwang.smartrefresh.layout.footer.ClassicsFooter
    
    android:layout_width=”match_parent”
    
    android:layout_height=”wrap_content”/>
    
    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
    注意:方法二 XML设置的Header和Footer的优先级是中等的,会被方法三覆盖。
    
    方法三 Java代码设置
   
    final RefreshLayout refreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
    
    //设置 Header 为 贝塞尔雷达 样式
    
    refreshLayout.setRefreshHeader(new BezierRadarHeader(this).setEnableHorizontalDrag(true));
    
    //设置 Footer 为 球脉冲 样式
    
    refreshLayout.setRefreshFooter(new BallPulseFooter(this).setSpinnerStyle(SpinnerStyle.Scale));
    
   
 
