Rém*_*let 32

几乎没有区别.

ListView 一个SliverList.与之相同GridView,这是一个SliverGrid.

他们做的完全一样.它们之间的唯一区别是它SliverList是一个条子,而不是一个小部件.这ScrollView通常意味着它在一个内部使用CustomScrollView.

ListView除了SliverList将其转换Widget为使其与其他小部件(如Row/)一起使用之外,别无他物Container.


大多数时候,使用ListView.

但是如果你想要高级滚动行为,比如带滚动的appbar动画; 你需要使用一个CustomScrollView.这将迫使你使用SliverList而不是ListView.


Trầ*_*Tâm 10

根据这篇文章

您使用的所有可滚动视图,例如ListViewGridView,都是actually implemented using Slivers. 您可以将 Slivers 视为较低级别的界面,为实现可滚动区域提供更细粒度的控制。因为 slivers 可以在每个项目滚动到视图时懒惰地构建它,所以 slivers 对于有效滚动大量子项特别有用。

  • 这应该被接受为答案,因为它定义了性能点。 (2认同)