我的理解 其原理为 两层嵌套的布局 外层为根布局,内层用以展示列表
当外层根布局下拉时 触发监听事件 刷新列表适配器 上拉 继续加载数据
借助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.SmartRefreshLayoutxmlns: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>
初始化代码
设置 下拉刷新样式
//设置头部刷新样式 全屏水滴
refreshLayout.setRefreshHeader(new WaveSwipeHeader( App.context ) );
附带一张效果图
不止只有这一种样式
推荐: -------属:特殊Header 看上边依赖
飞行气球:DeliveryHeader
掉落盒子:DropBoxHeader
全屏水滴:WaveSwipeHeader
官方下拉Meterial:MaterialHeader
颜色闪烁渐变头:StoreHouseHeader
战争城市游戏头:FunGameBattleCityHeader
打砖块游戏:FunGameHitBlockHeader
弹出圆圈加载:BezierCircleHeader
冲上云霄:TaurusHeader
金色校园:PhoenixHeader
作者:狼博苏(摩拜)
附上链接 狼博苏
怎样使用上边的这个特殊刷新头
列举一二
refreshLayout.setRefreshHeader(new WaveSwipeHeader( App.context ) ); //水滴刷新
refreshLayout.setRefreshHeader(new FunGameHitBlockHeader( App.context ) ); //打砖块
App.context 为全局上下文
设置 上拉加载
refreshLayout.setRefreshFooter(new BallPulseFooter(App.context).setSpinnerStyle( SpinnerStyle.Scale));
设置 刷新 加载 监听
展示列表成功后进行逻辑应用
------2020-03-12 22:26
今天早上无故多了个 小钻石 0.1
多写一个逻辑实现
按照该功能的逻辑分析 需求一般是这样的:当我们下拉刷新时去请求最新的数据并展示
上拉加载时 再去请求第二页第三页第四页等数据时 在原有数据尾部添加新的数据
看代码
定义全局int变量 来区分上拉下拉
int i;
下拉刷新:
MVP成功回调
上拉加载
MVP成功回调
就可以了
如需其他需求自行百度
网友评论