build method Null safety

  1. @override
void build(
  1. ParagraphBuilder builder,
  2. {double textScaleFactor = 1.0,
  3. List<PlaceholderDimensions>? dimensions}
)
override

Apply the style, text, and children of this object to the given ParagraphBuilder, from which a Paragraph can be obtained. Paragraph objects can be drawn on Canvas objects.

Rather than using this directly, it's simpler to use the TextPainter class to paint TextSpan objects onto Canvas objects.

Implementation

@override
void build(
  ui.ParagraphBuilder builder, {
  double textScaleFactor = 1.0,
  List<PlaceholderDimensions>? dimensions,
}) {
  assert(debugAssertIsValid());
  final bool hasStyle = style != null;
  if (hasStyle) {
    builder.pushStyle(style!.getTextStyle(textScaleFactor: textScaleFactor));
  }
  if (text != null) {
    try {
      builder.addText(text!);
    } on ArgumentError catch (exception, stack) {
      FlutterError.reportError(FlutterErrorDetails(
        exception: exception,
        stack: stack,
        library: 'painting library',
        context: ErrorDescription('while building a TextSpan'),
      ));
      // Use a Unicode replacement character as a substitute for invalid text.
      builder.addText('\uFFFD');
    }
  }
  if (children != null) {
    for (final InlineSpan child in children!) {
      assert(child != null);
      child.build(
        builder,
        textScaleFactor: textScaleFactor,
        dimensions: dimensions,
      );
    }
  }
  if (hasStyle) {
    builder.pop();
  }
}