Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用行和列创建自定义栅格视图_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 使用行和列创建自定义栅格视图

Flutter 使用行和列创建自定义栅格视图,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,所以,我有一个包含12个元素的列表,并希望像网格一样在列和行中显示它们。 我的代码:- Widget grid({int crossAxisCount, int mainAxisCount,double width}){ int count=-1; return Column( children: List.generate(mainAxisCount, (index){ count++; return Row( m

所以,我有一个包含12个元素的列表,并希望像网格一样在列和行中显示它们。 我的代码:-

Widget grid({int crossAxisCount, int mainAxisCount,double width}){
    int count=-1;
    return Column(
      children: List.generate(mainAxisCount, (index){
        count++;
        return Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: List.generate(crossAxisCount, (index){
            count++;
            return serviceTile(
              serviceName: serviceNames[count],
              content: contents[count],
              fileName: serviceNames[count].toLowerCase(),
              width: width,
            );
          }),
        );
      }),
    );
  }
但我的代码从索引0到13,但它应该一直到11,以便解决以下错误:-

RangeError (index): Index out of range: index should be less than 12: 13
  • 解决方案1

    Widget grid({int crossAxisCount, int mainAxisCount,double width}){
      int count=-1;
      return Column(
        children: List.generate(mainAxisCount, (index){
         // count++;
          return Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: List.generate(crossAxisCount, (index){
              count++;
              return serviceTile(
                serviceName: serviceNames[count],
                content: contents[count],
                fileName: serviceNames[count].toLowerCase(),
                width: width,
              );
            }),
          );
        }),
      );
    }
    
  • 解决方案2

    Widget grid({int crossAxisCount, int mainAxisCount,double width}){
    
      return Column(
        children: List.generate(mainAxisCount, (index1){
    
          return Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: List.generate(crossAxisCount, (index2){
              int count = (mainAxisCount * index1) + index2;
              return serviceTile(
                serviceName: serviceNames[count],
                content: contents[count],
                fileName: serviceNames[count].toLowerCase(),
                width: width,
              );
            }),
          );
        }),
      );
    }