Flutter中 SliverList 和 ListView 之间有什么区别?
答案 0 :(得分:21)
几乎没有区别。
ListView
一个SliverList
。与GridView
相同,即SliverGrid
。
他们正在做同样的事情。它们之间的唯一区别是SliverList
是一个条子,而不是一个小部件。这意味着它在ScrollView
中使用,通常是CustomScrollView
。
ListView
只不过是SliverList
的招标,可以将其转换为Widget
,以便与其他小部件一起使用,例如Row
/ Container
大部分时间都使用ListView
。
但是如果你想要高级滚动行为,比如带滚动的appbar动画;您需要使用CustomScrollView
。这将迫使您使用SliverList
而不是ListView
。
答案 1 :(得分:1)
根据this article,
您使用的所有可滚动视图,例如
ListView
和GridView
, 是actually implemented using Slivers
。您可以想到 作为较低级别的界面,可在以下位置提供更细粒度的控制 实现可滚动区域。因为条子可以懒散地堆积 就像滚动到视图中一样,条子对于 有效地滚动大量孩子。