【问题标题】:Differences between SliverList vs ListView in FlutterFlutter 中 SliverList 与 ListView 的区别
【发布时间】:2018-10-26 07:36:12
【问题描述】:

Flutter 中 SliverListListView 有什么区别?

【问题讨论】:

  • 这个问题完全合法。
  • 是的,我已阅读文档。但没有发现任何差异。这就是我问这个问题的原因。
  • @RafiqulHasan 我很确定@Adriaan 会告诉你你看的不够彻底......:P
  • @Pascal 这个问题是在 2018 年 5 月 16 日提出的。当时 Flutter 处于 alpha 阶段。找不到太多文档或文章。

标签: flutter flutter-layout flutter-sliver


【解决方案1】:

几乎没有区别。

ListView SliverList。与GridView 相同,即SliverGrid

他们正在做同样的事情。它们之间的唯一区别是SliverList 是条子,而不是小部件。这意味着它在ScrollView 中使用,通常是CustomScrollView

ListView 只不过是对SliverList 的委托,将其转换为Widget,使其可以与Row/Container 等其他小部件一起使用。


大多数时候,使用ListView

但是,如果您想要高级滚动行为,例如带有滚动的 appbar 动画;您需要使用CustomScrollView。这将迫使您使用SliverList 而不是ListView

【讨论】:

  • SliverList 一起使用SliverToBoxAdapter 是可能的,是否有任何与ListView 等效的不在sliver 列表中的?
【解决方案2】:

根据this article

您使用的所有可滚动视图,例如 ListViewGridView, 是actually implemented using Slivers。你可以想到 Slivers 作为较低级别的接口,提供更细粒度的控制 实现可滚动区域。因为 slivers 可以懒惰地构建每个 项目就像它滚动到视图中一样,条子对于 有效地滚动大量子项。

【讨论】:

  • 这应该被接受为答案,因为它定义了性能点。
猜你喜欢
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 2020-09-20
  • 2023-04-08
  • 1970-01-01
  • 2019-08-21
  • 2022-08-18
  • 2015-11-11
相关资源
最近更新 更多