Таблица данных во Flutter

Опубликовано: 9 Января, 2023

DataTable — это дизайн материала, используемый для отображения данных в таблице или в строках и столбцах. Таблица данных используется для отображения данных, которые имеют столбцы и строки в качестве дочерних, столбец используется для установки имени столбца, а строка используется для установки значений столбцов. Любой столбец в DataTable может быть отсортирован на его основе в порядке возрастания или убывания. Если sortColumnIndex не равен нулю, таблица будет отсортирована в соответствии со значениями в указанном столбце. Порядок сортировки определяется логическим флагом sortAscending.

Для получения дополнительной информации см. Учебник по Dart .

Синтаксис в Дарте:

DataTable(
    // datatable widget
    columns: [
        // column to set the name
        DataColumn(label: Text("Col1"),),
        DataColumn(label: Text("Col2"),),
    ],

    rows: [
        // row to set the values
        DataRow(cells: [
            DataCell(Text("ValCol1")),
            DataCell(Text("ValCol2")),
        ]),
    ],
)

Пример кода:

Dart




import "package:flutter/material.dart";
// main method that runs the runApp.
  
void main() => runApp(SimpleDataTable());
  
class SimpleDataTable extends StatelessWidget{
  
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // MaterialApp with debugShowCheckedModeBanner false and home
      debugShowCheckedModeBanner: false,
      theme: ThemeData.light(),
      home: Scaffold(
        // Scaffold with appbar ans body.
        appBar: AppBar(
          title: Text("Simple Data Table"),
        ),
        body:
        SingleChildScrollView(
          scrollDirection: Axis.horizontal,
          child: DataTable(
            // Datatable widget that have the property columns and rows.
            columns: [
              // Set the name of the column
              DataColumn(label: Text("ID"),),
              DataColumn(label: Text("Name"),),
              DataColumn(label: Text("LastName"),),
              DataColumn(label: Text("Age"),),
            ],
            rows:[
              // Set the values to the columns 
              DataRow(cells: [
                DataCell(Text("1")),
                DataCell(Text("Alex")),
                DataCell(Text("Anderson")),
                DataCell(Text("18")),
              ]),
              DataRow(cells: [
                DataCell(Text("2")),
                DataCell(Text("John")),
                DataCell(Text("Anderson")),
                DataCell(Text("24")),
              ]),
            ]
          ),
        ),
      ),
    );
  }
}

Объяснение кода:

  • main — это основной метод, вызываемый после загрузки программы.
  • После загрузки программы runApp запустится и вызовет созданный нами класс (SimpleDataTable) для выполнения.
  • Этот класс является виджетом без сохранения состояния , поскольку показанные данные будут фиксированными (без изменений).
  • Поскольку Flutter основан на виджетах, виджет должен быть создан.
  • Создание MaterialApp , которое позволяет нам использовать Scaffold.
  • Scaffold позволяет нам использовать AppBar и Body.
  • AppBar имеет простой заголовок.
  • Тело содержит SingleChildScrollView, используемое для горизонтальной прокрутки и предотвращения переполнения из-за мобильного устройства с малой шириной экрана.
  • SingleChildScrollView принимает Single Child DataTable , который принимает столбцы и строки.
  • Столбцы, представленные в DataColumn , которые принимают метку.
  • Строки, представленные в DataRow, принимают ячейки, за которыми следует DataCell , который принимает любой виджет, представляющий каждое значение столбца строки.

Выход: