render method

  1. @override
void render(
  1. Buffer buffer,
  2. Rect area
)
override

Renders the underlying widget to the provided buffer within the area.

Implementation

@override
void render(Buffer buffer, Rect area) {
  final sb = widget as SizedBox;
  final targetWidth = sb.width ?? area.width;
  final targetHeight = sb.height ?? area.height;

  if (targetWidth <= 0 || targetHeight <= 0) return;

  if (sb.child != null) {
    if (childElement != null &&
        childElement!.widget.runtimeType == sb.child.runtimeType) {
      childElement!.update(sb.child!);
    } else {
      childElement = sb.child!.createElement();
      childElement!.mount(this);
    }

    final childArea = Rect(area.x, area.y, targetWidth, targetHeight);
    final viewport = Viewport(buffer, childArea);
    childElement!.render(viewport, Rect(0, 0, targetWidth, targetHeight));
  }
}