react-native中FlatList设置getItemLayout

FlatList中有一个getItemLayout方法

中文网是这么介绍的

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

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

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

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

阅读 10k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏