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 borderWidget = widget as LeftBorder;
  final padding = borderWidget.padding;
  final extraW = 1 + padding.left + padding.right;
  final extraH = padding.top + padding.bottom;

  if (childElement != null) {
    final childConstraints = BoxConstraints(
      minWidth: max(0, constraints.minWidth - extraW),
      maxWidth: constraints.maxWidth == BoxConstraints.infinity
          ? BoxConstraints.infinity
          : max(0, constraints.maxWidth - extraW),
      minHeight: max(0, constraints.minHeight - extraH),
      maxHeight: constraints.maxHeight == BoxConstraints.infinity
          ? BoxConstraints.infinity
          : max(0, constraints.maxHeight - extraH),
    );
    final childSize = childElement!.layout(childConstraints);
    childElement!.relativeOffset = Offset(1 + padding.left, padding.top);
    return constraints.constrain(
      Size(childSize.width + extraW, childSize.height + extraH),
    );
  }
  return constraints.constrain(Size(extraW, extraH));
}