【问题标题】:How to align Text properly in flutter?如何在颤动中正确对齐文本?
【发布时间】:2020-09-14 10:20:53
【问题描述】:

我实际上想知道如何在按钮中正确居中文本。我正在使用自定义字体,并且使用此字体,无论我在做什么,它都不会在按钮内居中显示我的文本。

我已经发现,使用标准字体(我猜是 Roboto),它也不能完美地在中心对齐,但这并不是很烦人。

这是我的代码:

RaisedButton(
   onPressed: () {},
   child: Text("LOG IN"),
),

这是它使用我的自定义字体产生的效果:

这里是标准 Roboto:

非常感谢!

【问题讨论】:

  • 您使用的是什么字体,这可能是问题,但我们需要确定。
  • 是的,我尝试了其他几种字体,但似乎只有这种字体的情况。这是客户的私人字体,但与 Secca 相似,或者我认为它的 Secca 有一些调整。具体我不知道。
  • 看起来不错,您仍然可以通过在 Column 中添加一个环绕文本并在其上方添加一个 SizedBox 来使其居中,并尽可能多地尝试居中,即使我建议切换字体。如果你不知道,你可以查看fonts.google.com(谷歌字体)寻找一些好的稳定字体。

标签: flutter dart text-alignment


【解决方案1】:

尝试添加padding 0

RaisedButton(
   padding: EdgeInsets.all(0), //<- try add this
   onPressed: () {},
   child: Text("LOG IN"),
),

【讨论】:

  • 可悲的是什么也没做
  • @Noah-YannickSchmid 所以字体肯定有问题。你能用调试油漆分享图片吗?如果您使用 android studio,请转到“Flutter 检查器”并单击“显示调试油漆”(带有 4 个箭头的蓝色图标)
【解决方案2】:

尝试使用Center() 小部件看看会发生什么

RaisedButton(
   onPressed: () {},
   child: Center(child: Text("LOG IN")),
),

【讨论】:

  • 那不是让按钮占据整个空间吗,我作为 Scaffold body 的唯一孩子试了一下,它占据了整个屏幕
  • 谢谢,我确实试过了,但它不会改变结果,除了按钮被水平拉伸。
【解决方案3】:

如果对齐方式从一种字体更改为另一种字体,则不太可能是其他答案中建议的填充或颤动相关的对齐问题。

这可能是由于使用了 Flutter/android/ios 不正确支持的字体格式,例如我使用oft格式的字体并使用ttf版本修复了这个问题。

前段时间的这个帖子强调没有正确记录,并且也不支持其他格式,例如 woff2:https://github.com/flutter/flutter/issues/13823

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2013-02-11
    • 2013-03-18
    • 2019-10-09
    • 2021-10-20
    • 2021-10-21
    • 2018-07-31
    相关资源
    最近更新 更多