我有一个TextSpan (参见下面的代码)。我想要计算文本的宽度,这样我就可以将文本居中对齐。
我该怎么做呢?
final textSpan = TextSpan(
text: ' $title ',
style: TextStyle(
color: titleColor,
fontSize: fontSize,
height: 1.0,
backgroundColor: backgroundColor,
),
);发布于 2021-05-25 16:56:30
final textSpan = TextSpan(
text: ' $title ',
style: TextStyle(
color: titleColor,
fontSize: fontSize,
height: 1.0,
backgroundColor: backgroundColor,
),
);
final TextPainter textPainter = TextPainter(
text: textSpan)
..layout(minWidth: 0, maxWidth: double.infinity);
print(textPainter.size); //the TextSpan width发布于 2021-05-25 16:56:51
要计算任何文本的大小,可以使用此函数:
Size measure(String text, TextStyle style,
{int maxLines: 1, TextDirection direction = TextDirection.ltr, double maxWidth = double.infinity}) {
final TextPainter textPainter =
TextPainter(text: TextSpan(text: text, style: style), maxLines: maxLines, textDirection: direction)
..layout(minWidth: 0, maxWidth: maxWidth);
return textPainter.size;
}正如你所看到的-你必须传递text和textsyle,可选的maxline,文本方向和宽度约束。
https://stackoverflow.com/questions/67684597
复制相似问题