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