Java LinearLayoutManager预取不工作

Java LinearLayoutManager预取不工作,java,android,android-recyclerview,kotlin,Java,Android,Android Recyclerview,Kotlin,我有一个RecyclerView显示可变高度的帖子。 我使用以下代码计算“OnBindViewHolder”中所需的高度,其中宽度为常量: val videoLayoutParams: ViewGroup.LayoutParams = videoView.layoutParams val height: Int = (postWidth.toFloat() * scale).roundToInt() videoLayoutParams.height = height videoView.lay

我有一个RecyclerView显示可变高度的帖子。 我使用以下代码计算“OnBindViewHolder”中所需的高度,其中宽度为常量:

val videoLayoutParams: ViewGroup.LayoutParams = videoView.layoutParams
val height: Int =  (postWidth.toFloat() * scale).roundToInt()
videoLayoutParams.height = height
videoView.layoutParams = videoLayoutParams
我唯一能想到的另一条线路需要相当长的时间,就是“滑行”载重线

问题是:滚动是非常紧张和滞后的

我登录了“OnBindViewHolder”,发现它正是在视图第一次出现在屏幕上时被调用的

我研究过预取,假设它是在默认情况下实现和启用的,我甚至尝试显式启用它。我已经尽了一切努力让它工作,但当视图第一次出现在屏幕上时,仍然会调用“OnBindViewHolder”

我正在使用RecyclerView版本27.1.1


我该怎么做?我应该在何时何地计算高度,或者更好的是,如何绑定比可见视图(预回迁)多2个视图?

第一个视图是什么意思?预抓取是在滚动时绑定“下方”视图,它对第一个布局没有影响。我的意思是它不会绑定当前可见矩形下方的视图。它只绑定那些可见的,而不绑定那些即将可见的。