У меня проблема с RecyclerView.OnScrollListener
, событие onScrolled
вызывается недостаточно быстро при быстрой прокрутке. В любой момент времени во время прокрутки мне нужно знать первый видимый элемент в RecyclerView
, чтобы рисовать на Canvas
на основе информации, полученной из этого элемента. Однако при быстрой прокрутке большинство событий пропускаются. Однако проблема не возникает, если прокрутить RecyclerView
со значительно меньшей скоростью. Я пробовал другие связанные с прокруткой события, но безуспешно.
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
val position = (recyclerView.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition()
val shotMapItem = shotMapAdapter.dataSource?.get(position)
viewModel?.let{
it.updateShotInfo(shotMapItem)
if (shotMapItem is ShotVm) {
set.add(position)
val team = if (shotMapItem.isHomePlayerShot) 0 else 1
shotMap.drawShot(shotMapItem.shotX, shotMapItem.shotY, team, shotMapItem.isGoal, shotMapItem.isReversed)
}
}
}
})