Android---SmartRefreshLayout实现上拉刷新和下拉加载更多

本文介绍了如何在Android项目中通过Gradle添加SmartRefreshLayout依赖,处理AndroidX与旧版Support依赖冲突,以及在activity中设置下拉刷新和上拉加载事件的代码示例。
摘要由CSDN通过智能技术生成

1. 在 build.gradle 中添加依赖

// 下拉刷新,上拉加载更多
// https://github.com/scwang90/SmartRefreshLayout
implementation 'io.github.scwang90:refresh-layout-kernel:2.1.0'      //核心必须依赖
implementation 'io.github.scwang90:refresh-header-classics:2.1.0'    //经典刷新头
implementation 'io.github.scwang90:refresh-footer-classics:2.1.0'    //经典加载

2. 如果使用 AndroidX 先在 gradle.properties 中添加。因为这个第三方库里有用到旧版的 Support 依赖包。android.enableJetifier=true 这个属性的作用可以简单理解为,如果自己的项目为 AndroidX,但也用到了一些第三方库,而第三方库里面还用的是旧版的依赖。这种情况下就会发生冲突。android.enableJetifier=true 这个属性就会在编译的时候把第三方依赖里面的旧版依赖换成我们 AndroidX 里的依赖。

android.useAndroidX=true
android.enableJetifier=true

3. activityMain.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <com.scwang.smart.refresh.layout.SmartRefreshLayout
        android:id="@+id/smart_refresh_layout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <com.scwang.smart.refresh.header.ClassicsHeader
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="RecyclerView"
            android:textSize="35sp"
            android:gravity="center"/>

        <com.scwang.smart.refresh.footer.ClassicsFooter
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </com.scwang.smart.refresh.layout.SmartRefreshLayout>

</LinearLayout>

4. MainActivity.kt

class MainActivity : AppCompatActivity() {
    private lateinit var smartRefreshLayout : SmartRefreshLayout

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        smartRefreshLayout = findViewById(R.id.smart_refresh_layout)

        // TODO 下拉刷新
        smartRefreshLayout.setOnRefreshListener {
            // TODO do something 请求最新的网络数据
            //...
            // TODO 完成刷新,参数2:是否刷新成功;参数2:是否还有更多数据
            smartRefreshLayout.finishRefresh(500, true, false)
        }

        // TODO 下拉加载更多
        smartRefreshLayout.setOnLoadMoreListener {
            // TODO do something 请求更多的网络数据
            //...
            // TODO 完成加载更多,参数2:是否刷新成功;参数2:是否还有更多数据
            smartRefreshLayout.finishLoadMore(500, true, true)
        }

    }
}

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android开发中,上拉刷新下拉加载更多是常见的列表控件功能,可以提高用户体验,下面介绍两种比较常用的实现方式: 1. SwipeRefreshLayout + RecyclerView: SwipeRefreshLayoutAndroid官方提供的一个支持下拉刷新的控件,可以很方便地实现下拉刷新的功能。而RecyclerView是Android官方提供的列表控件,可以实现列表的展示和滑动等功能。这两个控件的结合使用可以实现上拉刷新下拉加载更多的功能。 使用步骤: 1)在布局文件中添加SwipeRefreshLayout和RecyclerView控件; 2)在Activity或Fragment中初始化RecyclerView和Adapter,并设置Adapter给RecyclerView; 3)使用SwipeRefreshLayout.setOnRefreshListener()方法设置下拉刷新的监听器,然后在监听器中执行数据刷新的逻辑; 4)使用RecyclerView.addOnScrollListener()方法设置上拉加载更多的监听器,然后在监听器中执行数据加载更多的逻辑。 2. SmartRefreshLayout + RecyclerView: SmartRefreshLayout是第三方库,是一个功能更加强大的下拉刷新上拉加载更多的控件。与SwipeRefreshLayout不同的是,SmartRefreshLayout支持自定义头部和底部视图,可以实现更加丰富的下拉刷新上拉加载效果。使用方式与SwipeRefreshLayout和RecyclerView也类似,不同的是需要引入第三方库的依赖。 使用步骤: 1)在布局文件中添加SmartRefreshLayout和RecyclerView控件; 2)在Activity或Fragment中初始化RecyclerView和Adapter,并设置Adapter给RecyclerView; 3)使用SmartRefreshLayout.setOnRefreshListener()方法设置下拉刷新的监听器,然后在监听器中执行数据刷新的逻辑; 4)使用SmartRefreshLayout.setOnLoadMoreListener()方法设置上拉加载更多的监听器,然后在监听器中执行数据加载更多的逻辑。 需要注意的是,在实现上拉刷新下拉加载更多的过程中,需要根据具体需求和业务逻辑,合理地控制数据的加载刷新,避免出现数据重复加载或者数据加载不完整的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别偷我的猪_09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值