美文网首页面试题
Android 上拉加载 下拉刷新

Android 上拉加载 下拉刷新

作者: 啥也写不出来的安卓技术人员 | 来源:发表于2020-03-12 22:26 被阅读0次

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

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

借助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成功回调

就可以了

如需其他需求自行百度

相关文章

网友评论

    本文标题:Android 上拉加载 下拉刷新

    本文链接:https://www.haomeiwen.com/subject/vxxyjhtx.html