检测 recyclerview 何时到达最顶部位置

Detect when the recyclerview has reached the top most position

我有用于显示聊天的 recyclerview。我已经设置了 layoutmanager 的 属性 - stackFromEnd - true,它实际上用于到达 recyclerview 的底部。我面临的问题是我想在 recyclerview 中实现分页。当用户到达页面顶部时,应该调用第二页网络调用。我无法创建相同的逻辑。我正在尝试使用以下代码但没有用。

if (dy < 0) {
                val visibleItemCount = recyclerView.layoutManager!!.childCount
                val totalItemCount = recyclerView.layoutManager!!.itemCount
                val pastVisibleItems = (recyclerView.layoutManager as LinearLayoutManager).findLastVisibleItemPosition()
                Log.e("&&&", "" + visibleItemCount + " " + pastVisibleItems + " " + totalItemCount);

                if (pastVisibleItems <= 3) {
                    presenter.loadMoreMessages(conversationId)
                }
            }

使用RecyclerView布局getPosition

val recyclerViewLayoutManager = recyclerView.layoutManager
recyclerViewLayoutManager?.let {
    if (it.getPosition == 0) {
        //do your work
    }
}

正如@Taseer Ahmad 所建议的,这是正确的答案。我附上代码片段。

if (dy < 0) {
                if ((recyclerView.layoutManager as LinearLayoutManager).findFirstCompletelyVisibleItemPosition() == 0) {
                    // load more messages
                }
            }