这是我的检测结束的函数,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
}
}
})
}
我以前用过它,它RecyclerView
是线性LayoutManger
的,每件事都很棒。
但是当我将它与RecyclerView
that has一起使用时GridLayoutManager
,事情变得很奇怪。
- 它只实现了一次,并且在我滚动时不起作用。
- 最后可见项目位置返回
totalItemCount-1
。
最后一件事:我调用了这个函数onCreate
,我尝试了它RecyclerView
,linear layout manager
一切都很棒
这是我的日志猫,
2018-10-06 06:10:15.919 11033-11033/com.example.karem.moviesdatabase E/q: 0
2018-10-06 06:10:15.919 11033-11033/com.example.karem.moviesdatabase E/q: 18
它只调用一次,当我滚动时没有任何反应。