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 @   FreeFunCode  阅读(3291)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 《HelloGitHub》第 108 期
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· MQ 如何保证数据一致性?
· Windows桌面应用自动更新解决方案SharpUpdater5发布
点击右上角即可分享
微信分享提示