我需要将FlatList上的 initialScrollIndex
设置为1,因此在初始加载时第二行将可见 . 这取决于 getItemLayout
. 我的FlatList单元格包含不同长度的文本,这导致每个单元格的高度不同,这导致我无法在 getItemLayout
中返回固定值 . 我的策略是:
-
加载时,遍历数据集以获取列表并计算每行的高度
-
将计算出的数据缓存到数组或字典中
-
getItemLayout中的返回缓存数据取决于索引
问题是 - 在将视图装入DOM层次结构之前,我找不到如何计算视图高度的方法 . 我读了很多关于onLayout prop的内容,但看起来应该首先渲染 View
以使其工作 .
那么,当列表单元格对于每一行不相同时,您使用什么来实现在react-native中滚动到指定行?
2 回答
我的第一个想法 - 尝试将其隐藏,取大小并使其可见 .
EDIT: 您也可以尝试使用react-native-text-size手动计算单元格高度 .
尝试在单位列表中设置scrollToIndex或scrollToItem
https://facebook.github.io/react-native/docs/flatlist.html#scrolltoindex
查看可用于滚动到列表中特定位置的其他方法https://facebook.github.io/react-native/docs/flatlist.html#methods