如果要获取当前位置,请在 onScrollListener() 中执行此操作
private var currentVisibleItemRecyclerView = -1
private var linearLayoutManager: LinearLayoutManager? = null
然后在onCreate()声明布局管理器,将其设置为recyclerview并设置onScrollListener
linearLayoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
recyclerView.setLayoutManager(linearLayoutManager)
recyclerView.addOnScrollListener(recyclerViewOnScrollListener)
recyclerViewOnScrollListener 在哪里
private val recyclerViewOnScrollListener: RecyclerView.OnScrollListener =
object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
}
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
val visibleItemCount: Int = linearLayoutManager!!.getChildCount()
val totalItemCount: Int = linearLayoutManager!!.getItemCount()
val firstVisibleItemPosition: Int =
linearLayoutManager!!.findFirstVisibleItemPosition()
currentVisibleItemRecyclerView = firstVisibleItemPosition + visibleItemCount
Log.d(
" Position",
" currentVisibleItemRecyclerView " + currentVisibleItemRecyclerView.toString()
)
}
}