performLayout method

  1. @override
Size performLayout(
  1. BoxConstraints constraints
)
override

Hook for subclasses to perform layout within the given constraints.

Implementation

@override
Size performLayout(BoxConstraints constraints) {
  final table = widget as LazyTable;
  final width = constraints.hasBoundedWidth ? constraints.maxWidth : 80;
  final height = constraints.hasBoundedHeight
      ? constraints.maxHeight
      : (table.itemCount + (table.headers.isNotEmpty ? 2 : 0));

  final hasHeaders = table.headers.isNotEmpty;
  final headerRowsCount = hasHeaders ? 2 : 0;
  final usableHeight = height - headerRowsCount;

  if (usableHeight > 0) {
    table.adjustScroll(usableHeight);
  }

  resolvedColumnWidths = List<int>.generate(table.headers.length, (c) {
    return c < table.columnWidths.length ? table.columnWidths[c] : 10;
  });

  return constraints.constrain(Size(width, height));
}