SmartRefreshLayout智能下拉刷新框架

本文介绍了SmartRefreshLayout,一个强大的下拉刷新框架,支持多种Header和Footer。通过依赖配置、布局设置和代码设置,详细讲解了如何使用SmartRefreshLayout实现下拉刷新和加载更多功能,以及框架的其他高级设置,如回弹动画时长、自动加载更多控制等。
摘要由CSDN通过智能技术生成

.
前面写了一个自定义的RecyclerView适配器,实现RecyclerView的下拉刷新有两种方式.

1、重写RecyclerView.Adapter的 getItemViewType(int position)方法,根据不同位置返回不同类型即可。可以利用这个特性把第0个位置预留出来,固定把第0个item存放下拉刷新的view

2、在RecyclerView外部嵌套一个类似SwipeRefreshLayout的控件,然后给SwipeRefreshLayout添加刷新监听函数,在刷新监听函数中我们重新获取数据,并更新RecyclerView的数据,这里推荐一个智能下拉刷新框架SmartRefreshLayout

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

第一种方式这里先不介绍,如有疑问可以看陈宇明大佬的万能适配器源码

一、依赖

V7包版本

implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-28'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-28'//没有使用特殊Header,可以不加这行
implementation 'com.android.support:appcompat-v7:25.3.1'//版本 23以上(必须)

androidx 版本

implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-andx-11'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-andx-11'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

二、使用

2.1布局

<com.scwang.smartrefresh.layout.SmartRefreshLayout
    android:id="@+id/refreshLayout"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/progressBar">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>

2.2布局设置Header和Footer
SmartRefreshLayout中如果有多个控件,第一个控件会变成Header,第二个控件作为主体,第三个控件则是Footer

<SmartRefreshLayout>
    <ClassicsHeader/>
    <TextView/>
    <ClassicsFooter/>
</SmartRefreshLayout>

在SmartRefreshLayout中,LinearLayout将作为主体,ClassicsHeader和ClassicsFooter分别为Header和Footer

<SmartRefreshLayout>
    <ClassicsHeader/>
    
    <LinearLayout
        android:layout_width=
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值