【发布时间】:2020-11-14 06:21:48
【问题描述】:
在文章https://flutter.dev/docs/cookbook/lists/long-lists 中,他们说在处理长列表时可以使用列表视图构建器。但“长名单”是什么意思?是数百、数千还是数万个条目?还是仅仅意味着一个动态列表?
在我的代码中,我一直在根据尝试使用列表视图构建器来决定如何构建应用程序(例如,我没有在其他滚动视图中嵌套列表,因为这似乎删除了构建器功能),但这使我的代码更加复杂。
我在 --profile 模式下运行了一个包含 10000 个 ListTile 小部件的应用程序,发现它们在滚动和初始加载期间都非常高效。我真的看不出与性能叠加的区别。所以我真的不知道要对 ListView.builder 下什么结论。
编辑:应该注意我在廉价的三星 Galaxy A10 上进行了测试
【问题讨论】:
-
在您的 ListView 中,如果有 100 个项目,您会在初始化列表视图时创建这 100 个项目并将其设置为列表视图的子项,还是使用构建器创建这些项?如果您更喜欢第二种方式(构建器),那么我们可以称其为长列表
-
listview builder 只是懒惰地构建小部件,这意味着它只在必要时构建它。例如:当用户向下滚动并且必须显示列表时。使用 ListView 不会高效,因为您将在显示任何内容之前先构建所有小部件。当您要在列表中构建 100 到 1000 个小部件时,这将导致在显示任何内容之前延迟几秒钟。
标签: flutter