首页 > 解决方案 > 如何在 ListView.Builder 中使用项目计数?

问题描述

点击这里查看图片! 单击此处查看输入“itemCount”时出现的错误我想问,我在使用 List.builder () 功能时遇到问题。我无法限制列表中包含的数据,以便显示有关错误范围的错误消息。这是我提供的源代码。

  _sort = <Sort>[
  Sort(
      category: 'By Games',
      item: new Container(
          height: 200,
          child: new Container(
              child: ListView.builder(
            scrollDirection: Axis.vertical,
            //itemCount: allGames['games'].length,
            itemBuilder: (context, index) {
              return Container(
                child: Padding(
                  padding: const EdgeInsets.all(15),
                  child: Text(allGames['games'][index]['game_title'].toString(), style: new TextStyle(color: Colors.white)),
                ),
              );
            },
          )))),

在这里我称之为“类别”和“项目”。我将它包装在一个包装小部件中。然后对于类别,我确实将其分为 3 个部分。然后我命名为“项目”的类别中的每个部分,问题是这里的项目容量过剩,因此显示的数据是剩余的,而不是目标。

                                                            child: Wrap(
                                                            children: <Widget>[
                                                              ListView.builder(
                                                                shrinkWrap: true,
                                                                itemCount: 3,
                                                                itemBuilder: (context, index) {
                                                                  context = context;
                                                                  if (index < 2) {
                                                                    final sort = _sort[index];
                                                                    return ExpansionTile(
                                                                      title: ListTile(
                                                                        title: Text(
                                                                          sort.category,
                                                                          style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
                                                                        ),
                                                                      ),
                                                                      children: <Widget>[
                                                                        ListTile(
                                                                          title: sort.item,
                                                                        )
                                                                      ],
                                                                    );
                                                                  } else {



                                                    ),

标签: flutterdart

解决方案


您正在访问allGames["games"],它说您正在尝试使用[]on null

好像allGamesnull,所以请注意。

除此之外,您的使用itemCount很好!

您可以通过执行以下操作来添加一些 null 意识:

itemCount = allGames != null ? (allGames["games"]?.length ?? 0) : 0

推荐阅读