在开发中,往往会有自定义页面文本大小的情况,此时发现有几种获取文本大小的方法。
第一种是由Context,在绘制之后获取文本的大小,这里不做说明,大家可以自行搜一下。
第二种是无须Context,在绘制之前获取:
Size _getTextSize(String text, TextStyle style) {
final TextPainter textPainter = TextPainter(
text: TextSpan(text: text, style: style), maxLines: 1, textDirection: TextDirection.ltr)
..layout(minWidth: 0, maxWidth: double.infinity);
return textPainter.size;
}
使用:
Size sz = _getTextSize("你好", TextStyle(fontSize: 16));
// 宽度
double width = sz.width;
// 高度
double height = sz.height;
以上。