Flutter无须Context获取文本大小(类似iOS的boundingRectWithSize)

阅读 155

2021-10-04

在开发中,往往会有自定义页面文本大小的情况,此时发现有几种获取文本大小的方法。

第一种是由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;

以上。

精彩评论(0)

0 0 举报