SliverList
和 ListView
在 Flutter 中有何不同?
SliverList
和 ListView
在 Flutter 中有何不同?
两者几乎没有区别。
ListView
是一个SliverList
,同样的GridView
也是一个SliverGrid
。
它们完全一样,唯一的区别是SliverList
是一个sliver而不是widget。这意味着它通常在ScrollView
中使用,通常是CustomScrollView
。
ListView
不过是将SliverList
绑定成一个Widget
, 以使其可以与其他组件一起使用,例如Row
/Container
等。
大多数情况下,请使用ListView
。
但是如果您想要高级滚动行为,如带有滚动的应用栏动画; 您将需要使用CustomScrollView
。这将强制您使用SliverList
而不是ListView
。
SliverList
可以使用SliverToBoxAdapter
,那么在不在SliverList
中的ListView
是否有相应的等效方法呢? - ParsListView
和 GridView
等所有可滚动视图实际上都是使用 Slivers 实现的。你可以将 Slivers 视为更低级别的接口,提供更细粒度的控制来实现可滚动区域。因为 slivers 可以在每个项滚动到视图中时才延迟构建,所以 slivers 特别适用于有效地浏览大量子元素的情况。请注意保留原文中的html标签。