Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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 来自API的颤振数据表_Flutter_Dart_Datatable_Flutter Layout - Fatal编程技术网

Flutter 来自API的颤振数据表

Flutter 来自API的颤振数据表,flutter,dart,datatable,flutter-layout,Flutter,Dart,Datatable,Flutter Layout,我有一个颤振应用程序,我用它来获取和显示数据。我从api获取数据,然后将其显示在datatable中。我想先显示列标题一次,然后在列表中显示数据,而不是在每个数据项中重复列标题,如下图所示 下面是显示数据表的代码 Expanded( child: ListView.builder( itemCount: loans.results.length,

我有一个颤振应用程序,我用它来获取和显示数据。我从api获取数据,然后将其显示在datatable中。我想先显示列标题一次,然后在列表中显示数据,而不是在每个数据项中重复列标题,如下图所示

下面是显示数据表的代码

                Expanded(
                    child: ListView.builder(
                        itemCount: loans.results.length,
                        itemBuilder: (context, index) {
                          final y = loans.results[index].customer.firstname +
                              " " +
                              loans.results[index].customer.lastname;

                          final x = loans
                              .results[index].loanParticulars.amountApplied;
                          final z = loans.results[index].stage.name;
                          final w =
                              loans.results[index].loanApplicationStatus.name;

                          return SingleChildScrollView(
                            scrollDirection: Axis.horizontal,
                            child: DataTable(columnSpacing: 38.0, columns: [
                              DataColumn(label: Text('Name')),
                              DataColumn(label: Text('Amount')),
                              DataColumn(label: Text('Status')),
                              DataColumn(label: Text('Stage')),
                            ], rows: [
                              DataRow(cells: [
                                DataCell(Container(width: 75, child: Text(y))),
                                DataCell(Container(child: Text(x))),
                                DataCell(Container(child: Text(w))),
                                DataCell(Container(child: Text(z)))
                              ])
                            ]),
                          );
                        }))
              

您还将为每个索引值生成一个
DataColumn
标题。您应该只为索引值生成数据行

替换以下代码段,而不是扩展的小部件并检查:

  Expanded(
    child: SingleChildScrollView(
      scrollDirection: Axis.horizontal,
      child: DataTable(
        columnSpacing: 38.0,
        columns: [
          DataColumn(label: Text('Name')),
          DataColumn(label: Text('Amount')),
          DataColumn(label: Text('Status')),
          DataColumn(label: Text('Stage')),
        ],
        rows: List.generate(loans.results.length, (index) {
          final y = loans.results[index].customer.firstname +
              " " +
              loans.results[index].customer.lastname;

          final x = loans.results[index].loanParticulars.amountApplied;
          final z = loans.results[index].stage.name;
          final w = loans.results[index].loanApplicationStatus.name;

          return DataRow(cells: [
            DataCell(Container(width: 75, child: Text(y))),
            DataCell(Container(child: Text(x))),
            DataCell(Container(child: Text(w))),
            DataCell(Container(child: Text(z)))
          ]);
        }),
      ),
    ),
  );


我举了一个例子,你只要删除listview构建器,然后像这样做

                 SingleChildScrollView(
                        scrollDirection: Axis.horizontal,
                        child: DataTable(columnSpacing: 38.0, columns: [
                          DataColumn(label: Text('Name')),
                        ], rows: loans.results.map((e) => DataRow(
                            selected: false,
                            onSelectChanged: (value) {},
                            cells: [
                              DataCell(Container(child: 
                              Text(e.customer.firstname),)),
                           ]
                       )).toList(),
                      )