如何跳过 ListView Flutter 中的索引

How to skip an index in an ListView Flutter

我正在尝试在 Flutter 中使用一个简单的 ListView。问题是我想对一张卡片.

使用列表两个索引(索引)

因此,如果 ListView 展开时,它应该始终使用两个索引。第一张卡可以访问索引 1 和 2 的数据,第二张卡可以访问索引 3 和 4 的数据,依此类推。

如果有人知道如何构建这样的东西,我将不胜感激:)

我看到了两种处理这种情况的方法...

第一个

您可以生成其他列表,其中每个元素将包含原始列表的 2 个元素。

第二

使用 isOdd 或 isEven 忽略一些索引。

ListView.builder(
  itemCount: myList.length
  itemBuilder: (_, index) {
    if(index.isEven){
       return MyCustomTile(
         first: myList[index]
         second: index + 1 == myList.length ? null : myList[index+1]
       );
    }
    return Container();
  }
)

注意不要让索引超出列表范围

我就是这样处理的,以防以后有人用:

ListView.builder(
              scrollDirection: Axis.horizontal,
              itemCount: itemList.length,
              itemBuilder: (context, index) {
                if (index % 2 == 0 && index < itemList.length) {
                  return Column(
                    children: [
                      ListElementWidget(data: itemList[index]),
                      (index + 1 < itemList.length)
                          ? Padding(
                              padding: const EdgeInsets.only(top: 8.0),
                              child: ListElementWidget(
                                  data: itemList[index + 1]),
                            )
                          : const SizedBox(
                              width: 0,
                            ),
                    ],
                  );
                } else {
                  return const SizedBox(width: 0);
                }
              },
            ),
          ),

除了 sizedbox 大小 0 之外,肯定有更好的方法来设计 non-existent 小部件。但我对 flutter 还很陌生,而且它很有效。