首页 > 解决方案 > 如何在片段中的 RecyclerView 中获取最后一个可见项目

问题描述

我正在构建一个片段页面,其中有一个 RecyclerView。RecyclerView 从 Internet 源获取日期(通过使用 Retrofit)。我试图在用户滚动到回收器末尾时调用新数据(换句话说,一些创建片段时调用数据,如果用户向下滑动,将调用新数据)。这是我用于此目的的代码

      rvCategorie.viewTreeObserver.addOnScrollChangedListener {
            when {
layoutManager.findLastCompletelyVisibleItemPosition() == adapterCategorie.listSize() - 1 && (nextpageLink.toString().isNullOrEmpty() or !nextpageLink.toString().equals("null")) -> {
                    Caller.getcall(++categoriesCurrentPage)
                }
            }
        }

问题是当使用此代码时,“layoutManager.findLastCompletelyVisibleItemPosition()”方法总是返回最后一个项目并调用新数据。即使该项目不可见并且尽管我没有滑过页面它仍然调用新数据

请注意:getcall() 方法是调用数据并返回数据的方法(没有问题)。调用完成时 nextpageLink 会自行更新(它可以只是一个链接(字符串)或 null) .

我的问题有什么解决办法吗。谢谢。

标签: androidandroid-fragmentskotlinandroid-recyclerview

解决方案


推荐阅读