Flutter - 如何在列中而不是在行中填充GridView项目。

问题描述 投票:0回答:1

目前,这是将物品添加到的顺序。GridView.builder:

current behaviour

我的问题是 -- -- 如何使它们被添加进来。这个 顺序?

desired behaviour

GridView的滚动方向必须保持垂直。

下面是一个例子 GridView 我正在使用。

Widget gridViewBuilder () {
  return GridView.builder(
     gridDelegate: 
        new SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 2,
          mainAxisSpacing: 1,
        ),
       itemCount: 3,
       itemBuilder: (BuildContext context, int i) {
          itemForGridview(i, context);
  );
}
flutter flutter-layout
1个回答
1
投票

我不认为用 GridView.builder 该行为是可能的。这里有一个简单的变通方法。

你可以使用 Row 与n Column 其中n是交叉轴数,如图所示 GridView.然后,我们简单地将数据划分,并将第一部分分配给第一个 Column 剩余的给第2个 Column.

final List<int> numbers = List.generate(10, (index) => index);

Row(
  children: [
    Column(
      children: List.generate(numbers.length ~/ 2,
          (index) => getContainer(numbers[index].toString())).toList(),
    ),
    Column(
      children: List.generate(
          numbers.length ~/ 2,
          (index) => getContainer(
              numbers[numbers.length ~/ 2 + index].toString())).toList(),
    ),
  ],
);

而getContainer可以是任何想要的widget.为了简单起见,我们取一个Container。

Widget getContainer(String number) {
  return Padding(
    padding: EdgeInsets.all(8),
    child: Container(
      color: Colors.green,
      width: 100,
      height: 100,
      alignment: Alignment.center,
      child: Text(
        number,
      ),
    ),
  );
}
© www.soinside.com 2019 - 2024. All rights reserved.