【问题标题】:What is the most efficient way of building a dynamic list in Flutter?在 Flutter 中构建动态列表最有效的方法是什么?
【发布时间】:2019-09-21 22:59:38
【问题描述】:

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

【问题讨论】:

    标签: listview flutter dynamic dart


    【解决方案1】:

    最好的方法是使用 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]);
        }
      )
    

    这里原地回调函数会被调用4次,每次调用都会生成一个Text Widget,显示在body中。

    您还可以编写一个单独的函数,该函数可以从 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)
    ),
    

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

    【讨论】:

      猜你喜欢
      • 2012-09-22
      • 2020-05-28
      • 2021-06-03
      • 2017-07-19
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多