Computes the visual position of the glyphs for painting the text.
The text will layout with a width that's as close to its max intrinsic width as possible while still being greater than or equal to minWidth and less than or equal to maxWidth.
Source
void layout({ double minWidth: 0.0, double maxWidth: double.INFINITY }) {
assert(_text != null);
if (!_needsLayout && minWidth == _lastMinWidth && maxWidth == _lastMaxWidth)
return;
_needsLayout = false;
if (_paragraph == null) {
ui.ParagraphStyle paragraphStyle = _text.style?.getParagraphStyle(
textAlign: textAlign,
textScaleFactor: textScaleFactor,
ellipsis: _ellipsis,
);
paragraphStyle ??= new ui.ParagraphStyle();
ui.ParagraphBuilder builder = new ui.ParagraphBuilder(paragraphStyle);
_text.build(builder, textScaleFactor: textScaleFactor);
_paragraph = builder.build();
}
_lastMinWidth = minWidth;
_lastMaxWidth = maxWidth;
_paragraph.layout(new ui.ParagraphConstraints(width: maxWidth));
if (minWidth != maxWidth) {
final double newWidth = maxIntrinsicWidth.clamp(minWidth, maxWidth);
if (newWidth != width)
_paragraph.layout(new ui.ParagraphConstraints(width: newWidth));
}
}