react-native中FlatList设置getItemLayout

XboxYan
  • 7.7k

FlatList中有一个getItemLayout方法

中文网是这么介绍的

getItemLayout是一个可选的优化,用于避免动态测量内容尺寸的开销,不过前提是你可以提前知道内容的高度。如果你的行高是固定的,getItemLayout用起来就既高效又简单,类似下面这样:
getItemLayout={(data, index) => (
    {length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}
 )}

这上面是需要提前知道内容的尺寸,如果内容的尺寸不是固定的,那该怎么办呢?

我的想法是通过onLayout方法来获取,但是不知道是不是跟上面提到的“需要提前知道内容的高度”,因为此时内容以及渲染出来了

有没有什么好的解决方法?

回复
阅读 5.8k
1 个回答

解决了吗,onLayout也没办法解决,Flatlist和SectionList并不会一次性渲染所有的节点,没有渲染到的不会执行onLayout方法。可能需要计算需要滚动的位置,使用scrollTo来滚动

宣传栏