繁体   English   中英

在 Flutter 中构建动态列表的最有效方法是什么?

[英]What is the most efficient way of building a dynamic list in Flutter?

所以,我目前正在尝试使用 listview.builder 在我的应用程序中动态构建一个列表。 我最初计划发送一个 http 请求一次只加载几个项目,但是我在使用 futurebuilder 和 listview builder 时遇到了很多麻烦。 这个想法是,如果用户滚动到底部,则会加载更多项目。 现在我正在使用流构建器,后端一次发送所有项目,我认为这是低效的,但是因为我没有从流构建列表的经验,所以我无法确定。 无论如何,我想要一些动态构建长列表的建议。

最好的方法是使用 ListView.builder。 要使用 ListView.builder,您必须通过使用 new 调用其构造函数来创建它的实例,它需要多个参数。 假设我们的应用程序中有一个这样的全局列表

List<String> litems = ["1","2","Third","4"];

使用 LIstView.builder,相同的代码应如下所示

body: new ListView.builder
  (
    itemCount: litems.length,
    itemBuilder: (BuildContext ctxt, int index) {
     return new Text(litems[index]);
    }
  )

在这里,就地回调 function 将被调用 4 次,每次调用都会生成一个 Text Widget,该控件将显示在 body 中。

您还可以编写一个单独的 function 可以从 itemBuilder 调用为

// A Separate Function called from itemBuilder
Widget buildBody(BuildContext ctxt, int index) {
  return new Text(litems[index]);
}
body: new ListView.builder
(
  itemCount: litems.length,
  itemBuilder: (BuildContext ctxt, int index) => 
buildBody(ctxt, index)
),

在这两种情况下,output 看起来都一样。 如果您希望每次在应用程序中加载小部件时都显示动态(不同)内容,您还可以在无状态小部件中使用 ListView.builder(..)。 使用有状态的小部件,它可以动态地改变屏幕的内容。 我希望这有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM