Flutter 如何获取可迭代的 .toList() 列表的长度?

Posted

技术标签:

【中文标题】Flutter 如何获取可迭代的 .toList() 列表的长度?【英文标题】:Flutter How to get length of a iterable .toList() list? 【发布时间】:2021-11-12 09:27:51 【问题描述】:

我想显示一个带有 FirebaseFirestore 卡片的 ListView。另外,我想显示一共有多少张卡片:

int Length = 0; //?

如何获取可迭代 .toList() 列表的长度?

     Column(
         children: snapshot.data!.docs
             .map(
                (doc) => 
                   Card(
                    title: doc["title"],)
                 .toList(
                growable: true,
             ),
          ),
       ),

【问题讨论】:

只需在其末尾添加 .length:.toList().length; 错误:参数类型'int'不能分配给参数类型'List'。 在构建widget树之前获取长度,然后在树中使用。 【参考方案1】:
Column(
         ...snapshot.data!.docs
             .asMap().map((index, value) => MapEntry(index, Card(
                    title: value["title"],)))
                 .values.toList(
                growable: true,
             ),
          ),
      

【讨论】:

对您有帮助吗? 你能告诉我如何设置卡片数量的 int Length 的状态吗? 为什么需要它?您的小部件将根据长度构建 这就是我想要基于生成的列表长度的长度?或者这不起作用? 这个方法包括itemCount,如果你想得到长度使用snapshot.data!.docs.length

以上是关于Flutter 如何获取可迭代的 .toList() 列表的长度?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 无法将所有 json 数据从 api 响应保存到 Iterable List 编辑:(无法从可迭代列表中获取数据)

flutter Dart语言List如何获取索引值

在变量中设置生成器函数的结果[重复]

Flutter firebase 数据库迭代项目

NoSuchMethodError:null 上的无效成员:'toList'(Flutter Web)_MapStream<QuerySnapshot 引发了异常

Flutter Search 可迭代的 Where