首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算TextSpan中文本的宽度

计算TextSpan中文本的宽度
EN

Stack Overflow用户
提问于 2021-05-25 16:44:08
回答 2查看 57关注 0票数 0

我有一个TextSpan (参见下面的代码)。我想要计算文本的宽度,这样我就可以将文本居中对齐。

我该怎么做呢?

代码语言:javascript
复制
final textSpan = TextSpan(
    text: ' $title ',
    style: TextStyle(
      color: titleColor,
      fontSize: fontSize,
      height: 1.0,
      backgroundColor: backgroundColor,
    ),
  );
EN

回答 2

Stack Overflow用户

发布于 2021-05-25 16:56:30

代码语言:javascript
复制
    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
票数 1
EN

Stack Overflow用户

发布于 2021-05-25 16:56:51

要计算任何文本的大小,可以使用此函数:

代码语言:javascript
复制
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,文本方向和宽度约束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67684597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档