我正在构建一个片段页面,里面有一个RecyclerView.RecyclerView从Internet来源获取日期(通过使用Retrofit)。当用户滚动到Recycler的末尾时,我试图调用新数据(其他换句话说,在创建片段时会调用某些数据,如果用户不慎将其调用,则会调用新数据)。 这是我用于此目的的代码
rvCategorie.viewTreeObserver.addOnScrollChangedListener {
when {
layoutManager.findLastCompletelyVisibleItemPosition() == adapterCategorie.listSize() - 1 && (nextpageLink.toString().isNullOrEmpty() or !nextpageLink.toString().equals("null")) -> {
Caller.getcall(++categoriesCurrentPage)
}
}
}
问题是,使用此代码时,“ layoutManager.findLastCompletelyVisibleItemPosition()”方法始终会返回最后一个项目并调用新数据。即使该项目不可见,而且我也不会在仍然调用的页面上使用新数据
请注意:getcall()方法是调用数据并返回数据的方法(有 没问题)。调用完成后,nextpageLink也会自动更新(只能是link(String)或null)。
我的问题有没有解决的办法。谢谢。