Usare la tabelle in Flutter con data_table_2

Mattepuffo's logo
Usare la tabelle in Flutter con data_table_2

Usare la tabelle in Flutter con data_table_2

In un precedente articolo abbiamo visto come usare le DataTable in Flutter.

Volendo possiamo ottenere risultati simili con data_table_2, che porta con se diverse facilitazione scrivendo meno codice a mano.

Per installare il package:

flutter pub add data_table_2

Qui sotto un esempio basico, non ho fatto test approfonditi; comunque trovate svariati esempi nella documentazione:

import 'package:data_table_2/data_table_2.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<DataRow> _libri = [
    DataRow(
      cells: [
        DataCell(
          Text("1"),
        ),
        DataCell(
          Text("IT"),
        ),
        DataCell(
          Text("Stephen King"),
        ),
      ],
    ),
    DataRow(
      cells: [
        DataCell(
          Text("2"),
        ),
        DataCell(
          Text("Sahara"),
        ),
        DataCell(
          Text("Clive Cussler"),
        ),
      ],
    ),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Padding(
        padding: const EdgeInsets.all(16),
        child: DataTable2(
          border: TableBorder(
            left: BorderSide(color: Colors.black.withAlpha(5)),
            right: BorderSide(color: Colors.black.withAlpha(5)),
            verticalInside: BorderSide(color: Colors.black.withAlpha(10)),
            horizontalInside: BorderSide(color: Colors.black.withAlpha(10)),
          ),
          columnSpacing: 12,
          horizontalMargin: 12,
          minWidth: 600,
          bottomMargin: 10,
          columns: [
            DataColumn2(
              label: Text('ID'),
              size: ColumnSize.S,
              numeric: true,
            ),
            DataColumn2(
              label: Text('TITOLO'),
              size: ColumnSize.L,
            ),
            DataColumn(
              label: Text('AUTORE'),
            ),
          ],
          rows: _libri,
        ),
      ),
    );
  }
}

Enjoy!


Condividi

Commentami!