作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Flutter中SliverList
和SliverFixedExtentList
有什么区别?
根据每个小部件的文档:
SliverList
:“一个条子,将多个子盒子放置在沿主轴的线性阵列中。”SliverFixedExtentList
:“将多个盒子子项放置在线性阵列中具有相同主轴范围的条子。”如果所有子项都具有相同的主轴范围,我们似乎应该使用 SliverFixedExtentList
而不是 SliverList
。然而,“相同的主轴范围”究竟意味着什么?
最佳答案
这意味着所有 child 的高度都一样。如果您熟悉 ListView
,它有 itemExtent
属性做同样的事情。
本质上,如果您不能保证所有列表项都“在主轴上大小相等”(例如,垂直滚动列表上的高度相等,或水平滚动列表上的宽度相等),那么我们无法知道“确切大小” "列表中的每个项目,直到我们加载它。但是,如果您可以保证它们都具有相同的尺寸,例如高度为 100 个单位,那么我们就不需要加载每个项目来测量其尺寸。
当您想跳远距离时,在加载之前了解项目大小非常有用。例如,如果你想向下滚动 10,000 px,如果我们知道每个项目固定在 200 px 高,那么我们可以轻松地跳转 50 个项目,只需加载第 51 个项目并显示它。如果我们不知道(如果您不能保证),那么我们将不得不逐字排列中间的所有项目,以查看 10,000 像素将使我们着陆的位置。
关于Flutter:SliverList 和 SliverFixedExtentList 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71625971/
Flutter中SliverList和SliverFixedExtentList有什么区别? 根据每个小部件的文档: SliverList :“一个条子,将多个子盒子放置在沿主轴的线性阵列中。” Sl
我是一名优秀的程序员,十分优秀!