检测 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
}
}
我有用于显示聊天的 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
}
}