Android 开源框架 ( 十四 ) 列表下拉刷新框架 --- SmartRefreshLayout

  结合上一篇RecyclerView,介绍一个针对列表的下拉和上拉刷新,加载的框架:SmartRefreshLayout.

    Android 开源框架 ( 十三 ) RecyclerView

  可实现自定义Header/Footer

  一.添加依赖

    compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.4-7'
    compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.4-7'

  二. 布局文件

<com.scwang.smartrefresh.layout.SmartRefreshLayout
        android:id="@+id/refreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srlEnablePreviewInEditMode="true">
        <!--srlAccentColor srlPrimaryColor 将会改变 Header 和 Footer 的主题颜色-->
        <!--srlEnablePreviewInEditMode 可以开启和关闭预览功能-->
        <com.scwang.smartrefresh.layout.header.ClassicsHeader
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:srlAccentColor="#000"
            app:srlPrimaryColor="@android:color/white" />


        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <com.scwang.smartrefresh.layout.footer.ClassicsFooter
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:srlAccentColor="#000"
            app:srlPrimaryColor="@android:color/white" />
    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
app:srlEnablePreviewInEditMode="true" 开启了预览功能
  

  三. 使用-上拉,下拉

refreshLayout.setOnRefreshListener(new OnRefreshListener() {
        @Override
        public void onRefresh(RefreshLayout refreshlayout) {
            pageNumber = 1;
            //刷新数据
        }
    });

    refreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
        @Override
        public void onLoadmore(RefreshLayout refreshlayout) {
            ++ pageNumber;
            //加载数据
        }
    });
    

  四.关闭动画

  //关闭刷新
    if (refreshLayout != null) {
        refreshLayout.finishRefresh(200);
        refreshLayout.finishLoadmore(200);
    }

  五.拓展- 参数属性介绍

                        属性 Attributes

名称-name格式-format描述-description
srlPrimaryColor color 主题颜色
srlAccentColor color 强调颜色
srlReboundDuration integer 释放后回弹动画时长
srlHeaderHeight dimension Header的标准高度
srlFooterHeight dimension Footer的标准高度
srlDragRate float 显示拖动高度/真实拖动高度(默认0.5,阻尼效果)
srlHeaderMaxDragRate float Header最大拖动高度/Header标准高度(默认2,要求>=1)
srlFooterMaxDragRate float Footer最大拖动高度/Footer标准高度(默认2,要求>=1)
srlEnableRefresh boolean 是否开启下拉刷新功能(默认true)
srlEnableLoadmore boolean 是否开启加上拉加载功能(默认true)
srlEnableHeaderTranslationContent boolean 拖动Header的时候是否同时拖动内容(默认true)
srlEnableFooterTranslationContent boolean 拖动Footer的时候是否同时拖动内容(默认true)
srlEnablePreviewInEditMode boolean 是否在编辑模式时显示预览效果(默认true)
srlDisableContentWhenRefresh boolean 是否在刷新的时候禁止内容的一切手势操作(默认false)
srlDisableContentWhenLoading boolean 是否在加载的时候禁止内容的一切手势操作(默认false)



                        

                          方法 Method

名称-name格式-format描述-description
setPrimaryColors colors 主题\强调颜色
setPrimaryColorsId colors 主题\强调颜色资源Id
setReboundDuration integer 释放后回弹动画时长
setHeaderHeight dimension Header的标准高度(px/dp 两个版本)
setFooterHeight dimension Footer的标准高度(px/dp 两个版本)
setDragRate float 显示拖动高度/真实拖动高度(默认0.5,阻尼效果)
setHeaderMaxDragRate float Header最大拖动高度/Header标准高度(默认2,要求>=1)
setFooterMaxDragRate float Footer最大拖动高度/Footer标准高度(默认2,要求>=1)
setEnableRefresh boolean 是否开启下拉刷新功能(默认true)
setEnableLoadmore boolean 是否开启加上拉加载功能(默认true)
setEnableHeaderTranslationContent boolean 拖动Header的时候是否同时拖动内容(默认true)
setEnableFooterTranslationContent boolean 拖动Footer的时候是否同时拖动内容(默认true)
setEnableAutoLoadmore boolean 是否监听列表滚动到底部时触发加载事件
setDisableContentWhenRefresh boolean 是否在刷新的时候禁止内容的一切手势操作(默认false)
setDisableContentWhenLoading boolean 是否在加载的时候禁止内容的一切手势操作(默认false)
setReboundInterpolator Interpolator 设置回弹动画的插值器
setRefreshHeader RefreshHeader 设置指定的Header
setRefreshFooter RefreshFooter 设置指定的Footer
setOnRefreshListener OnRefreshListener 设置刷新监听器
setOnLoadmoreListener OnLoadmoreListener 设置加载监听器
setOnRefreshLoadmoreListener OnRefreshLoadmoreListener 同时设置上面两个监听器
setOnMultiPurposeListener OnMultiPurposeListener 设置多功能监听器
setLoadmoreFinished boolean 设置全部数据加载完成,之后不会触发加载事件
finishRefresh (int delayed) 完成刷新,结束刷新动画
finishLoadmore (int delayed) 完成加载,结束加载动画
getRefreshHeader RefreshHeader 获取Header
getRefreshFooter RefreshFooter 获取Footer
getState RefreshState 获取当前状态
isRefreshing boolean 是否正在刷新
isLoading boolean 是否正在加载
autoRefresh (int delayed) 触发自动刷新
autoLoadmore (int delayed) 触发自动加载

  参数属性引用自:
SmartRefreshLayout---“智能”下拉刷新布局 感谢原作者!
 
posted @ 2018-08-07 20:23  FreeFunCode  阅读(3188)  评论(0编辑  收藏  举报