LinearLayoutManager预提取无法正常运行

时间:2018-06-24 11:56:18

标签: java android android-recyclerview kotlin

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

0 个答案:

没有答案