Table constructor

const Table({
  1. Key? key,
  2. required List<TableRow> rows,
  3. TableSize defaultColumnWidth = const FlexTableSize(),
  4. TableSize defaultRowHeight = const IntrinsicTableSize(),
  5. Map<int, TableSize>? columnWidths,
  6. Map<int, TableSize>? rowHeights,
  7. Clip clipBehavior = Clip.hardEdge,
  8. TableTheme? theme,
  9. FrozenTableData? frozenCells,
  10. double? horizontalOffset,
  11. double? verticalOffset,
  12. Size? viewportSize,
})

Creates a Table widget.

The table displays data organized in rows and cells with flexible sizing and interactive features.

Parameters:

  • rows (List
  • defaultColumnWidth (TableSize, default: FlexTableSize()): Default column sizing
  • defaultRowHeight (TableSize, default: IntrinsicTableSize()): Default row sizing
  • columnWidths (Map<int, TableSize>?, optional): Column-specific sizes
  • rowHeights (Map<int, TableSize>?, optional): Row-specific sizes
  • clipBehavior (Clip, default: Clip.hardEdge): Content clipping behavior
  • theme (TableTheme?, optional): Visual styling configuration
  • frozenCells (FrozenTableData?, optional): Frozen cell configuration
  • horizontalOffset (double?, optional): Horizontal scroll position
  • verticalOffset (double?, optional): Vertical scroll position
  • viewportSize (Size?, optional): Viewport size constraints

Example:

Table(
  rows: [
    TableHeader(cells: [TableCell(child: Text('Header'))]),
    TableRow(cells: [TableCell(child: Text('Data'))]),
  ],
  columnWidths: {0: FixedTableSize(width: 200)},
);

Implementation

const Table({
  super.key,
  required this.rows,
  this.defaultColumnWidth = const FlexTableSize(),
  this.defaultRowHeight = const IntrinsicTableSize(),
  this.columnWidths,
  this.rowHeights,
  this.clipBehavior = Clip.hardEdge,
  this.theme,
  this.frozenCells,
  this.horizontalOffset,
  this.verticalOffset,
  this.viewportSize,
});