RecyclerView.OnScrollListener onScrolled在快速滚动时调用速度不够快

时间:2019-10-15 09:05:11

标签: android android-recyclerview linearlayoutmanager

我遇到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)


                    }

                }
            }
        })

0 个答案:

没有答案