TextPainter textPainter = TextPainter(
text: TextSpan(
text: text,
style: textStyle,
),
textDirection: TextDirection.ltr
);
textPainter.layout(maxWidth: maxWidth);
double textHeight = textPainter.height;
注意,如果这段文本既要计算,又要显示,那显示的部分也应使用TextSpan,不可简单使用Text,不然计算的高度和显示会有不一致。应使用RichText进行显示,且其他参数也保持一致:
RichText(
textDirection: TextDirection.ltr,
text: TextSpan( // 由于计算text高度必须使用textspan,因此这里也必须用textspan,直接用text会计算和绘制不一致
text: text,
style: textStyle
)
)