computeLines static method
Compute the lines used by RoundedBackgroundTextPainter.
The text painter
must have been already laid out:
final painter = TextPainter(
text: const TextSpan(text: testText),
);
painter.layout();
final lines = RoundedBackgroundTextPainter.computeLines(painter);
Implementation
@visibleForTesting
/// Compute the lines used by [RoundedBackgroundTextPainter].
///
/// The text [painter] must have been already laid out:
/// ```dart
/// final painter = TextPainter(
/// text: const TextSpan(text: testText),
/// );
/// painter.layout();
/// final lines = RoundedBackgroundTextPainter.computeLines(painter);
/// ```
static List<List<LineMetricsHelper>> computeLines(TextPainter painter) {
final metrics = painter.computeLineMetrics();
final helpers = metrics.map((lineMetric) {
return LineMetricsHelper(lineMetric, metrics.length);
});
final List<List<LineMetricsHelper>> lineInfos = [[]];
for (final line in helpers) {
if (line.isEmpty) {
lineInfos.add([]);
} else {
lineInfos.last.add(line);
}
}
return lineInfos;
}