renderLabel function
Gets the figure of a label.
The default align of lables is various in different situations, so it can be
configured by defaultAlign
in this method.
Implementation
Figure renderLabel(
Label label,
Offset anchor,
Alignment defaultAlign,
) {
assert(label.haveText);
final painter = TextPainter(
text: label.style.style != null
? TextSpan(text: label.text, style: label.style.style)
: label.style.span!(label.text!),
textAlign: label.style.textAlign ?? TextAlign.start,
textDirection: label.style.textDirection ?? TextDirection.ltr,
textScaleFactor: label.style.textScaleFactor ?? 1.0,
maxLines: label.style.maxLines,
ellipsis: label.style.ellipsis,
locale: label.style.locale,
strutStyle: label.style.strutStyle,
textWidthBasis: label.style.textWidthBasis ?? TextWidthBasis.parent,
textHeightBehavior: label.style.textHeightBehavior,
);
painter.layout(
minWidth: label.style.minWidth ?? 0.0,
maxWidth: label.style.maxWidth ?? double.infinity,
);
final axis =
label.style.offset == null ? anchor : anchor + label.style.offset!;
final align = label.style.align ?? defaultAlign;
var paintPoint = getPaintPoint(
axis,
painter.width,
painter.height,
align,
);
final rotation = label.style.rotation;
if (rotation != null) {
return RotatedTextFigure(
painter,
paintPoint,
rotation,
axis,
);
} else {
return TextFigure(painter, paintPoint);
}
}