Flutter:SliverList和SliverFixedExtentList之间的区别。

3
SliverListSliverFixedExtentList 在 Flutter 中有什么区别?
根据每个小部件的文档:
  • SliverList: "在主轴上沿线性数组放置多个框子孩子的银片。"
  • SliverFixedExtentList: "将多个具有相同主轴距离的框子孩子放入线性数组中的银片."
如果所有子项都具有相同的主轴距离,则似乎应该使用 SliverFixedExtentList 而不是 SliverList。但是,"相同的主轴距离" 究竟意味着什么?
1个回答

7
这意味着所有子项的高度都相同。如果您熟悉ListView,则它有一个itemExtent属性,可以实现同样的功能。
如果您无法保证所有列表项在主轴上具有“相等的大小”(例如,在垂直滚动列表上具有相等的高度,或在水平滚动列表上具有相等的宽度),那么我们将无法在加载每个项之前知道列表中每个项目的“确切大小”。然而,如果您可以保证它们都具有相同的大小,例如100个单位的高度,那么我们就不需要加载每个条目来测量其大小。
在加载它们之前了解项目大小非常有用,尤其是当您想跳跃较大的距离时。例如,如果您想向下滚动10,000像素,并且我们知道每个项目的高度固定为200像素,那么我们可以轻松地跳过50个项目,只需加载第51个项目并显示它。如果我们不知道这一点(即无法保证),则必须在中间逐个布置所有项目,以查看10,000像素将会落在哪里。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接