Android 判断RecyclerView是否滚动到底部

需求:列表滚动后,判断是否滚动到底部,展示加载更多的Loading文案和动画

Kotlin 复制代码
 binding.watchMoreRv.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)
                //获取layoutManager
                val layoutManager = recyclerView.layoutManager as LinearLayoutManager
                //获取item个数
                val totalItemCount = layoutManager.itemCount
                //最后一个可见item的位置
                val lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition()
                //当前并不在请求,不是最后一个页面
                if (!isLoading && !isLastPage && lastVisibleItemPosition == totalItemCount - 1
                    && recyclerView.scrollState == RecyclerView.SCROLL_STATE_IDLE
                ) {
                    runOnUiThread {
                        curMorePage++
                        isLoading = true
                        homeMoreAdapter?.setLoading(true)
                    }
                    Handler(Looper.getMainLooper()).postDelayed({
                        loadMoreData()
                    }, 2000)
                }
            }
        })

tips:recyclerView.scrollState == RecyclerView.SCROLL_STATE_IDLE 这个判断条件很重要哦。

  • SCROLL_STATE_IDLE:值为0,RecyclerView 当前处于 空闲状态,没有滚动操作正在进行。这是默认状态,当滚动停止时会切换到该状态。
  • RecyclerView.SCROLL_STATE_DRAGGING:值为1,RecyclerView 当前正在被用户拖动。用户用手指滑动屏幕时进入该状态。
  • RecyclerView.SCROLL_STATE_SETTLING:值为2,RecyclerView 当前正在 惯性滚动。用户手指松开后,列表仍在由于惯性继续滑动时的状态。
相关推荐
2501_9159090616 分钟前
iOS 加固工具实战解析,主流平台审核机制与工具应对策略
android·ios·小程序·https·uni-app·iphone·webview
马 孔 多 在下雨44 分钟前
安卓服务与多线程
android
2501_915106322 小时前
iOS WebView 调试实战,第三方脚本加载失败与内容安全策略冲突问题排查指南
android·ios·小程序·https·uni-app·iphone·webview
消失的旧时光-19433 小时前
Android 键盘
android·键盘监听
Jackilina_Stone16 小时前
【faiss】用于高效相似性搜索和聚类的C++库 | 源码详解与编译安装
android·linux·c++·编译·faiss
棒棒AIT17 小时前
mac 苹果电脑 Intel 芯片(Mac X86) 安卓虚拟机 Android模拟器 的救命稻草(下载安装指南)
android·游戏·macos·安卓·mac
fishwheel17 小时前
Android:Reverse 实战 part 2 番外 IDA python
android·python·安全
消失的旧时光-194320 小时前
Android网络框架封装 ---> Retrofit + OkHttp + 协程 + LiveData + 断点续传 + 多线程下载 + 进度框交互
android·网络·retrofit
zcychong21 小时前
Handler(二):Java层源码分析
android