Flutter:当使用条件表达式构建时,如何避免indexOutOfBounds异常?

6gpjuf90  于 2023-03-04  发布在  Flutter
关注(0)|答案(1)|浏览(195)

当我构建页面时,我希望dayTile小部件排在2行中。我不知道用户想要多少个,所以我需要使用listView.Builder。我面临的问题是,我构建的方式只适用于数组中有偶数个项目的情况。

ListView.builder(
              itemCount: dayTiles.length,
              itemBuilder: ((context, index) {
                return index.isEven
                    ? Row(
                        children: [
                          dayTiles[index],
                          dayTiles?[index + 1] ?? Container(),
                        ],
                      )
                    : Container();
              }),
            ),

如何使它返回一个只有一个dayTile的行,而另一个空间为空?
下图包含所需的效果。

kwvwclae

kwvwclae1#

根据您的UI,您可以使用GridView.builder而不是ListView。

GridView.builder(
  gridDelegate:
      SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
  itemBuilder: (context, index) => dayTiles[index],
);

相关问题