layoutChildren method
void
layoutChildren(
- BoxConstraints constraints, {
- List<
int> ? hideWidgets, - TextPainter? textPainter,
Implementation
void layoutChildren(
BoxConstraints constraints, {
List<int>? hideWidgets,
TextPainter? textPainter,
}) {
if (childCount == 0) {
return;
}
RenderBox? child = firstChild;
_placeholderDimensions = List<PlaceholderDimensions>.filled(
textChildCount, PlaceholderDimensions.empty,
growable: false);
int childIndex = 0;
while (child != null && childIndex < textChildCount) {
// Only constrain the width to the maximum width of the paragraph.
// Leave height unconstrained, which will overflow if expanded past.
child.layout(
BoxConstraints(
maxWidth: hideWidgets != null && hideWidgets.contains(childIndex)
? 0
: constraints.maxWidth,
),
parentUsesSize: true,
);
double? baselineOffset;
switch (_placeholderSpans[childIndex].alignment) {
case ui.PlaceholderAlignment.baseline:
{
baselineOffset = child
.getDistanceToBaseline(_placeholderSpans[childIndex].baseline!);
break;
}
default:
{
baselineOffset = null;
break;
}
}
_placeholderDimensions![childIndex] = PlaceholderDimensions(
size: child.size,
alignment: _placeholderSpans[childIndex].alignment,
baseline: _placeholderSpans[childIndex].baseline,
baselineOffset: baselineOffset,
);
child = childAfter(child);
childIndex += 1;
}
(textPainter ?? this.textPainter)
.setPlaceholderDimensions(_placeholderDimensions);
}