scwang90 /SmartRefreshLayout

🔥下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。

★ 25,089⑂ 4,952
25,089
stars
+-7+-8+-18
4,952
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

Android智能下拉刷新框架-SmartRefreshLayout







 English | 中文

SmartRefreshLayout以打造一个强大,稳定,成熟的下拉刷新框架为目标,并集成各种的炫酷、多样、实用、美观的Header和Footer。
正如名字所说,SmartRefreshLayout是一个“聪明”或者“智能”的下拉刷新布局,由于它的“智能”,它不只是支持所有的View,还支持多层嵌套的视图结构。
它继承自ViewGroup 而不是FrameLayout或LinearLayout,提高了性能。
也吸取了现在流行的各种刷新布局的优点,包括谷歌官方的 SwipeRefreshLayout,
其他第三方的 Ultra-Pull-To-Refresh、TwinklingRefreshLayout 。
还集成了各种炫酷的 Header 和 Footer。

 IOS版本

IOS版本:链接

 国内加速

github 由于你懂的原因,下载速度缓慢,图片也无法查看,可以跳转 Gitee镜像

 特点功能:

 - 支持多点触摸
 - 支持淘宝二楼和二级刷新
 - 支持嵌套多层的视图结构 Layout (LinearLayout,FrameLayout...)
 - 支持所有的 View(AbsListView、RecyclerView、WebView....View)
 - 支持自定义并且已经集成了很多炫酷的 Header 和 Footer.
 - 支持和 ListView 的无缝同步滚动 和 CoordinatorLayout 的嵌套滚动 .
 - 支持自动刷新、自动上拉加载(自动检测列表惯性滚动到底部,而不用手动上拉).
 - 支持自定义回弹动画的插值器,实现各种炫酷的动画效果.
 - 支持设置主题来适配任何场景的 App,不会出现炫酷但很尴尬的情况.
 - 支持设多种滑动方式:平移、拉伸、背后固定、顶层固定、全屏
 - 支持所有可滚动视图的越界回弹
 - 支持 Header 和 Footer 交换混用
 - 支持 AndroidX
 - 支持横向刷新
 - 支持IOS

 传送门

 - 属性文档
 - 常见问题
 - 智能之处
 - 更新日志
 - 博客文章
 - 源码下载
 - 多点触摸
 - 自定义Header

 Demo
下载 APK-Demo

!

 项目演示
|个人首页|微博列表|
|:---:|:---:|
|!|!|

|餐饮美食|个人中心|
|:---:|:---:|
|!|!|

 样式演示 Style
|Delivery|DropBox|
|:---:|:---:|
|!|!|
|Refresh-your-delivery|Dropbox-Refresh|

上面这两个是我自己实现的,下面的是我把github上其它优秀的Header进行的整理和集合还有优化:

|BezierRadar|BezierCircle|
|:---:|:---:|
|!|!|
|Pull To Refresh|Pull Down To Refresh|

|FlyRefresh|Classics|
|:---:|:---:|
|!|!|
|FlyRefresh|ClassicsHeader|

|Phoenix|Taurus|
|:---:|:---:|
|!|!|
|Yalantis/Phoenix|Yalantis/Taurus

|BattleCity|HitBlock|
|:---:|:---:|
|!|!|
|FunGame/BattleCity|FunGame/HitBlock

|WaveSwipe|Material|
|:---:|:---:|
|!|!|
|WaveSwipeRefreshLayout|MaterialHeader

|StoreHouse|WaterDrop|
|:---:|:---:|
|!|!|
|CRefreshLayout|WaterDrop


看到这么多炫酷的Header,是不是觉得很棒?这时你或许会担心这么多的Header集成在一起,但是平时只会用到一个,是不是要引入很多无用的代码和资源?
V2.x 版本已经把依赖库拆分成8个包啦,用到的时候自行引用就可以啦!

 - refresh-layout-kernel        核心必须依赖
 - refresh-header-classics      经典刷新头
 - refresh-header-radar         雷达刷新头
 - refresh-header-falsify       虚拟刷新头
 - refresh-header-material      谷歌刷新头
 - refresh-header-two-level     二级刷新头
 - refresh-footer-ball          球脉冲加载
 - refresh-footer-classics      经典加载

 注:在Demo中有些炫酷的 Header,他们并不具有实用性,所以没有打包上传仓库,所以无法直接添加依赖。
如果你确实想要在App中集成它们,请自行找到对应个 tag 的分支,把对应版本的Header源码拷贝到自己的项目中,作为自定义Header来使用。

 需要源码引用的Header如下:

 BezierCircleHeader
DeliveryHeader
DropBoxHeader
FlyRefreshHeader
FunGameBattleCityHeader
FunGameHitBlockHeader
PhoenixHeader
StoreHouseHeader
TaurusHeader
WaterDropHeader
WaveSwipeHeader


 简单用例
 1.在 build.gradle 中添加依赖

 注:3.x 版本已经发布,主要升级为使用 androidx 替换 support, 并且目前尚未添加新功能, 如果你还需要使用 support 请使用 2.x 版本。

gradle
implementation 'androidx.appcompat:appcompat:1.0.0'                 //必须 1.0.0 以上

implementation  'io.github.scwang90:refresh-layout-kernel:3.0.0-alpha'      //核心必须依赖
implementation  'io.github.scwang90:refresh-header-classics:3.0.0-alpha'    //经典刷新头
implementation  'io.github.scwang90:refresh-header-radar:3.0.0-alpha'       //雷达刷新头
implementation  'io.github.scwang90:refresh-header-falsify:3.0.0-alpha'     //虚拟刷新头
implementa

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON