layout method
TextLayout
layout(
- InlineSpan root,
- BoxConstraints constraints, {
- TextStyle style = const TextStyle(),
Lays out root using constraints.
Implementation
TextLayout layout(
InlineSpan root,
BoxConstraints constraints, {
TextStyle style = const TextStyle(),
}) {
final runs = <_SourceRun>[];
final textBuffer = StringBuffer();
_flatten(root, style, null, textBuffer, runs);
final text = textBuffer.toString();
final effectiveStyle = root is TextSpan ? root.style ?? style : style;
final indexMap = TextIndexMap(text);
final laidOut = _layoutRuns(runs, constraints.maxWidth);
return TextLayout(
text: text,
style: effectiveStyle,
indexMap: indexMap,
lines: laidOut.lines,
size: Size(
constraints.constrainWidth(laidOut.maxLineWidth),
constraints.constrainHeight(math.max(1, laidOut.lines.length)),
),
);
}