【发布时间】:2018-02-10 02:47:35
【问题描述】:
我在List 上遇到了CellMeasurer 和scrollToIndex 的问题。如果我将scrollToIndex 设置为某个较大的值(可能是与前面的行对应的任何索引,该行前面是尚未测量的行),然后向上滚动,滚动似乎会反复重置回原来的位置。最终它开始越来越高地重置,直到最终我回到列表的开头。
Relevant Plunker——它是一个包含 300 个元素的列表(所有相同的静态高度,所以 CellMeasurer 不是必需的,但它说明了我的问题),我将 scrollToIndex 设置为 150。尝试向上滚动。
https://plnkr.co/edit/XPF5D88WI9CErhkmrgAy?p=preview
可以理解,滚动可能不会完全平滑,因为计算是基于预测的高度,而且它们并不总是正确的(至少在实践中——在这种情况下它们会是正确的),但这似乎特别糟糕/意外。我怀疑(并希望)我在这里做错了 - 会感激任何想法。谢谢。
编辑:
在我的 MBP 上,Chrome 和 Firefox 都会出现这种情况,不过根据我使用的浏览器,它看起来会略有不同。在 Windows 上,使用 Chrome,向上滚动时会出现一些奇怪的不同行闪烁,但它似乎至少没有重置回 150。
编辑:
这是gif of the issue occurring - 这是在 Chrome 60.0.3112.113、Mac OS Sierra 10.12.6 上:
【问题讨论】:
-
@andrew...有时效果很好...
-
@MukulSharma - 什么浏览器和操作系统?
-
我已登录 googleChrome
-
不管怎样,它在 Chrome+Safari+Firefox(Mac OS 上)对我来说很好用。
-
@brianvaughn 很奇怪。所以你向上滚动(查看值低于 150 的行)没有口吃?我能够在 Safari、Firefox 和 Chrome 中的 Mac OS Sierra、Firefox 和 Chrome 中的 Windows、Chrome 中的 Chrome OS 59 以及 Chrome 和 Safari 中的 iOS 10.3.3 上重现。您是否可以尝试更多的浏览器/操作系统/机器组合来尝试重现这一点?感谢任何帮助。谢谢。