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 当前正在 惯性滚动。用户手指松开后,列表仍在由于惯性继续滑动时的状态。
相关推荐
执明wa9 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder10 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农10 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户693717500138411 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr11 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
sg_knight11 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
爱笑鱼11 小时前
Binder(四):ioctl(BINDER_WRITE_READ) 之后,事务怎样到达目标进程?
android
AFinalStone11 小时前
Android 7系统休眠唤醒(二)开机全链路—BootROM到Launcher
android·电源管理·休眠唤醒
Mr YiRan12 小时前
Android NDK开发之统计到未被回收的图片
android