我有一个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个视图?