Android 智能刷新框架SmartRefreshLayout

我的理解 其原理为 两层嵌套的布局 外层为根布局,内层用以展示列表

当外层根布局下拉时 触发监听事件 刷新列表适配器 上拉 继续加载数据

借助SmartRefreshLayout 智能刷新布局 为根布局

依赖文件

implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-21' implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-21'

//没有使用特殊Header,可以不加这行 //注意版本与项目一致 implementation ↑

implementation 'androidx.recyclerview:recyclerview:1.1.0'

布局代码

<com.scwang.smartrefresh.layout.SmartRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="match_parent"
    android:background="#ffffff"
    android:id="@+id/refreshLayout"
    android:layout_height="match_parent">
        <!-- 内层嵌套列表-->
       <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerCircle"
            android:padding="10dp"
            android:background="#ffffff"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </androidx.recyclerview.widget.RecyclerView>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>

初始化代码

image

设置 下拉刷新样式

//设置头部刷新样式 全屏水滴

refreshLayout.setRefreshHeader(new WaveSwipeHeader( App.context ) );

附带一张效果图

image

不止只有这一种样式

推荐: -------属:特殊Header 看上边依赖

飞行气球:DeliveryHeader

掉落盒子:DropBoxHeader

全屏水滴:WaveSwipeHeader

官方下拉Meterial:MaterialHeader

颜色闪烁渐变头:StoreHouseHeader

战争城市游戏头:FunGameBattleCityHeader

打砖块游戏:FunGameHitBlockHeader

弹出圆圈加载:BezierCircleHeader

冲上云霄:TaurusHeader

金色校园:PhoenixHeader

作者:狼博苏(摩拜)

                                                                                                            附上链接 [狼博苏](//www.greatytc.com/p/29e315ff44a6)

怎样使用上边的这个特殊刷新头

列举一二

refreshLayout.setRefreshHeader(new WaveSwipeHeader( App.context ) ); //水滴刷新

refreshLayout.setRefreshHeader(new FunGameHitBlockHeader( App.context ) ); //打砖块

App.context 为全局上下文

设置 上拉加载

refreshLayout.setRefreshFooter(new BallPulseFooter(App.context).setSpinnerStyle( SpinnerStyle.Scale));

设置 刷新 加载 监听

image

展示列表成功后进行逻辑应用

                                                                                     ------2020-03-12   22:26

今天早上无故多了个 小钻石 0.1

多写一个逻辑实现

按照该功能的逻辑分析 需求一般是这样的:当我们下拉刷新时去请求最新的数据并展示

上拉加载时 再去请求第二页第三页第四页等数据时 在原有数据尾部添加新的数据

看代码

定义全局int变量 来区分上拉下拉

int i;

下拉刷新:

image

MVP成功回调

image

上拉加载

image

MVP成功回调

image

就可以了

如需其他需求自行百度

本文章转自:比面粉还白的小白(//www.greatytc.com/p/645ac47deb81)

四、具体每个属性的用法:

五、我的博客地址:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容