Android Kotlin/RecyclerView:未显示偏移量的滚动拓扑位置

Android Kotlin/RecyclerView:未显示偏移量的滚动拓扑位置,android,kotlin,Android,Kotlin,我想了解为什么我不能在LinearLayoutManager上使用scrollToPositionWithOffset方法?请看图片了解我的意思: 一点背景: 图像中的第一行(带有scrollToPosition)滚动RecyclerView,使位置(在本例中为50)可见-这通常意味着所选位置显示在可见的RecyclerView底部(位置50在“滚动”后首先可见)。而我总是想在顶部展示它。根据我的研究,使用这个scrollToPositionWithOffset方法似乎是一个什么样的解决方案(

我想了解为什么我不能在LinearLayoutManager上使用scrollToPositionWithOffset方法?请看图片了解我的意思:

一点背景:

图像中的第一行(带有
scrollToPosition
)滚动RecyclerView,使位置(在本例中为50)可见-这通常意味着所选位置显示在可见的RecyclerView底部(位置50在“滚动”后首先可见)。而我总是想在顶部展示它。根据我的研究,使用这个
scrollToPositionWithOffset
方法似乎是一个什么样的解决方案()

有趣的是,我能够通过定制LinearLayoutManager的SmoothScroller实现我想要的,但是我的数据集太大了,所以“平滑滚动”的速度是一个问题,我似乎无法在不引起其他问题的情况下提高足够的速度


简而言之,我希望scrollToPositionWithOffset能帮我解决这个问题。但是,我不知道如何访问该方法。

您需要强制转换从
RecyclerView.getLayoutManager()返回的
LayoutManager

(recyclerview.layoutManager作为LinearLayoutManager)。使用偏移量滚动拓扑位置

recyclerView.apply { 
      
    (layoutManager as LinearLayoutManager).scrollToPositionWithOffset(itemPosition, offsetValue)

}

请注意,如果列表/回收视图具有水平方向,则偏移值可以是X,如果列表/回收视图具有垂直方向,则偏移值可以是Y

谢谢。它起作用了。有人知道为什么需要这个铸件才能工作吗?