wordBreak function
String
wordBreak(
- String text, {
- required TextStyle textStyle,
- required double maxWidth,
- TextScaler textScaler = TextScaler.noScaling,
Word break
Implementation
String wordBreak(
String text, {
required TextStyle textStyle,
required double maxWidth,
TextScaler textScaler = TextScaler.noScaling,
}) {
if (text.trim().isEmpty) return text;
final double space = _getTextWidth(' ', textStyle, textScaler);
final List<String> words = text.split(' ');
final List<double> wordWidthList = words.map((w) {
return _getTextWidth(w, textStyle, textScaler);
}).toList();
String line = "";
List<String> lines = [];
for (int i = 0; i < words.length; i++) {
final lineWidth = _getTextWidth(line, textStyle, textScaler);
final isNext = i + 1 < words.length;
final nextLineWidth = lineWidth + wordWidthList[i] + (isNext ? space : 0);
if (nextLineWidth >= maxWidth) {
lines.add(line);
line = "";
}
line += words[i] + (isNext ? " " : "");
}
lines.add(line);
return lines.join("\n");
}