Android Kotlin - 删除/重置 RecyclerView OnScrollListener

5 android android-recyclerview

我在函数内加载 RecyclerView 和 ScrollListener

这是用于在其中设置 ScrollListener 的代码(我删除了该问题不需要的所有内容):

    recyclerViewMemes.addOnScrollListener(object : RecyclerView.OnScrollListener() {
        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)

            val firstPosition = layoutManager.findFirstVisibleItemPosition()
            val lastPosition = layoutManager.findLastVisibleItemPosition()
            
            for (i in firstPosition..lastPosition) {
                if(adapterMemes.memes[i].pic.contains("_vid_")){ // ERROR HERE
                    Log.d(tagg, "bla")
                }
            }
        }
    })
Run Code Online (Sandbox Code Playgroud)

当我尝试通过再次调用该函数来重置 RecyclerView 时,我进入ArrayIndexOutOfBoundsException了我用 注释的行ERROR HERE。这意味着 RecyclerView 在重置所有内容时仍然会被触发。

那么我该如何防止这种情况呢?就像删除/重置 ScrollListener 一样?

小智 3

我找到了解决方案:

recyclerViewMemes.clearOnScrollListeners()
Run Code Online (Sandbox Code Playgroud)

重置前