Recyclerview addOnScrollListener问题

问题描述 投票:0回答:1

这是我的功能,检测结束后将用于分页的RecyclerView

private fun setOnScrollListener(categoryRecyclerView: RecyclerView, categoryPresenter: EntertainmentPresenter){
    categoryRecyclerView.addOnScrollListener(object: RecyclerView.OnScrollListener(){

        override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)
            val totalItemCount:Int = categoryLayoutManager.itemCount
            val firstVisibleItemPosition:Int = categoryLayoutManager.findFirstVisibleItemPosition()
            val visibleItemCount:Int
            val lastVisibleItemPosition: Int = categoryLayoutManager.findLastVisibleItemPosition()

            visibleItemCount = lastVisibleItemPosition - firstVisibleItemPosition

            Log.e("q", lastVisibleItemPosition.toString())
            Log.e("q", dy.toString())

            if (loading) {
                if (totalItemCount > previousTotal) {
                    loading = false
                    previousTotal = totalItemCount
                }
            }

            if (!loading && totalItemCount - visibleItemCount  <= firstVisibleItemPosition) {
                 Log.e("q", lastVisibleItemPosition.toString())
                loading = true
            }
        }
    })
}

我之前在qazxsw poi上使用它,它有线性的qazxsw poi,一切都很棒。

但是当我用RecyclerViewLayoutManger一起使用时,事情变得奇怪了。

  1. 它只实现一次,当我滚动时不起作用。
  2. 最后一个可见项目位置返回RecyclerView

最后一件事:我在GridLayoutManager中调用此函数,我尝试使用totalItemCount-1onCreate,一切都很棒

这是我的logcat,

RecyclerView

它只调用一次,滚动时没有任何反应。

android android-recyclerview kotlin pagination endlessscroll
1个回答
0
投票

我的RecyclerView高度设置为match_parent

但是在我将高度改为500dp之后一切都运行良好

我不知道为什么,但无论如何这里是我的旧布局

linear layout manager

我只将recyclerview高度更改为500dp并且它可以工作

回答比问题更奇怪

© www.soinside.com 2019 - 2024. All rights reserved.