是否可以使 Flutter 中的字符具有相同的宽度?

Is it possible to make characters in Flutter to have the same width?

正如您在下图中看到的,文本具有相同数量的字符,但由于数字“1”比“5”和“2”更细,因此两个文本的宽度不同。

如何在 Flutter 中进行调整?

Use a monospaced字体,又称等距、等宽或不等比例字体,是一种字母和字符在水平方向上占据相同数量的字体space.

维基百科解释得很好。 https://en.wikipedia.org/wiki/Monospaced_font

Hiepav 建议,似乎是个好方法,因为您并没有做错任何事情,但字体中的每个字符都有不同的宽度,因此必须进行调整以提供足够的空间。

但是,作为一种解决方法,您实际上可以将文本包装在一个固定宽度大小的框中,该框为两个小部件提供足够的 space 字符宽度变化,例如 SizedBox、[=11] =] 甚至 Container 具有宽度限制和居中对齐 child。这样,使用该字体,您至少应该使 : 垂直对齐。

您可以设置字体功能以使用 tabularFigures

// import 'dart:ui';

Text(
  _getTimeString(),
  style: TextStyle(
    fontFeatures: [
      FontFeature.tabularFigures()
    ],
  ),
),

之前:

之后:

另请参阅: