【发布时间】:2018-01-24 17:54:34
【问题描述】:
我在NestedScrollView 中有一个RecyclerView,我试图在使用滚动事件期间获取最后一个可见列表项的位置。以下代码使我能够可靠地检测滚动事件:
val recyclerView = nestedScrollView.getChildAt(0) as RecyclerView
nestedScrollView.setOnScrollChangeListener { v: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int ->
val layoutManager = recyclerView?.layoutManager as? LinearLayoutManager
val lastVisiblePosition = layoutManager?.findLastVisibleItemPosition()
}
然而,问题在于lastVisiblePosition 总是最终成为列表中的最后一项,无论它是否真的在屏幕上。我哪里出错了?
【问题讨论】:
-
设置recyclerview.setnestedscrolllingenabled(false);
-
我做到了。没有区别。
-
你的recyclerview的高度是多少?
-
我尝试了 wrap_content 和 match_parent。第一个可见项始终是第一个列表项,最后一个始终是最后一项。
标签: android android-recyclerview kotlin android-nestedscrollview