强大的Android刷新控件-SmoothRefreshLayout

SmoothRefreshLayout是一个高效的Android刷新库,理论上支持所有视图,包括自动刷新、自动上拉加载、多点触摸和嵌套滑动等功能。库中包含了丰富的回调接口和调试信息,支持自定义刷新视图样式,并提供了QQ下拉阻尼效果等实现。
摘要由CSDN通过智能技术生成

SmoothRefreshLayout

一个高效的Android刷新库,理论上支持所有的视图,比官方的SwipeRefreshLayout更强大且使用方便.
本开源库的部分代码来自android-Ultra-Pull-To-Refresh.
非常感谢他提供的这么棒的开源项目!

特性:

  • 理论上支持所有的视图,且可根据具体需求高效适配.
  • 支持多点触摸.
  • 支持嵌套滑动,完整实现了NestedScrollingChild,NestedScrollingParent 接口,玩转CoordinatorLayout.
  • 直接继承自ViewGroup,拥有卓越的性能,支持类FameLayout的特性(Gravity、Margin).
  • 支持自动刷新、自动上拉加载、到底自动加载更多(不推荐,建议使用Adapter实现,可自定义到底判断逻辑回调实现预加载更多).
  • 支持越界回弹.
  • 支持刷新视图自定样式:STYLE_DEFAULT(默认不改变大小)、STYLE_SCALE(动态改变大小,一直会重测量并布局,所以性能会有损失)、STYLE_PIN(不会改变视图大小,固定在顶部或者底部)、STYLE_FOLLOW_SCALE(先纵向跟随移动并且不改变视图大小,大于视图高度后动态改变视图大小且性能会有损失)、STYLE_FOLLOW_PIN(不会改变视图大小,先纵向跟随移动,大于视图高度后固定)、STYLE_FOLLOW_CENTER(不会改变视图大小,先纵向跟随移动,大于视图高度后让视图保持在移动的距离中心点).
  • 支持二级刷新事件(TwoLevelSmoothRefreshLayout),PS:淘宝二楼、京东活动.
  • 支持横向刷新(HorizontalSmoothRefreshLayout).
  • 支持ListView、GridView、RecyclerView加载更多的同步平滑滚动.
  • 支持多状态视图:STATE_CONTENT(默认状态)、STATE_ERROR(异常状态)、STATE_EMPTY(空状态)、STATE_CUSTOM(自定义状态).
  • 支持手势:同步Fling(刷新视图仍可见的情况下,会先回滚隐藏刷新视图,而后向下传递Fling手势).
  • 支持作为可拉伸内部视图布局使用(类小米设置页效果).
  • 丰富的回调接口和调试信息,可利用现有API实现丰富的效果.

演示程序

下载 Demo.apk

更新日志

老版本升级务必查看

更新日志

快照

  • 测试拉伸收缩效果(1.6.2版本添加)
  • 测试横向拉伸收缩效果(1.6.2版本添加)
  • 测试横向刷新(1.5.0版本添加)
  • 测试QQ浏览器样式
  • 测试QQ活动样式
  • 测试2级刷新
  • 包含ListView
  • 包含RecyclerView
  • 包含ViewPager
  • CoordinatorLayout
  • 越界回弹模式
  • 测试嵌套滑动

使用

Gradle
repositories {
    ...
    maven { url 'https://jitpack.io' }
}

dependencies {
    //核心基础库,包含绝大多数功能,扩展库必须依赖本库(从1.6.0版本开始Core库不再自带刷新视图实现,只包含核心功能)
    compile 'com.github.dkzwm.SmoothRefreshLayout:core:1.6.3.3'
    //默认Classic样式的刷新视图实现库(从1.6.0版本才有,是从老版本的Core库中拆分出来的库)
    compile 'com.github.dkzwm.SmoothRefreshLayout:ext-classic:1.6.3.3'
    //默认Material样式的刷新视图实现库(从1.6.0版本才有,是从老版本的Core库中拆分出来的库)
    compile 'com.github.dkzwm.SmoothRefreshLayout:ext-material:1.6.3.3'
    //工具类库,带有一些快捷配置工具(自动滚动刷新工具,快速设置AppBarLayout工具)
    compile 'com.github.dkzwm.SmoothRefreshLayout:ext-utils:1.6.3.3'
    //扩展支持二级刷新库
    compile 'com.github.dkzwm.SmoothRefreshLayout:ext-two-level:1.6.3.3'
    //扩展支持横向刷新库
    compile 'com.github.dkzwm.SmoothRefreshLayout:ext-horizontal:1.6.3.3'
}
在Xml中配置
<?xml version="1.0" encoding="utf-8"?>
<me.dkzwm.widget.srl.SmoothRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/refreshLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</me.dkzwm.widget.srl.SmoothRefreshLayout>
Java代码配置
SmoothRefreshLayout refreshLayout = (SmoothRefreshLayout)findViewById(R.id.smoothRefreshLayout);
refreshLayout.setHeaderView(new ClassicHeader(this));
refreshLayout.setOnRefreshListener(new RefreshingListenerAdapter() {
    @Override
    public void onRefreshBegin(boolean isRefresh) {
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
             
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值