【问题标题】:Calculate width for text in TextSpan计算 TextSpan 中文本的宽度
【发布时间】:2021-05-25 08:44:08
【问题描述】:

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

我该怎么做?

final textSpan = TextSpan(
    text: ' $title ',
    style: TextStyle(
      color: titleColor,
      fontSize: fontSize,
      height: 1.0,
      backgroundColor: backgroundColor,
    ),
  );

【问题讨论】:

    标签: flutter dart


    【解决方案1】:
        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
    

    【讨论】:

      【解决方案2】:

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

      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,可选的 maxlines,文本方向和宽度约束。

      【讨论】:

        猜你喜欢
        • 2010-12-07
        • 2011-11-25
        • 2010-09-12
        • 2015-02-20
        • 2011-02-24
        • 2013-10-07
        • 2011-03-18
        • 2012-07-26
        相关资源
        最近更新 更多