【问题标题】:Multiple Line Text Align Centre Vertically with Line Height多行文本与行高垂直居中对齐
【发布时间】:2021-07-19 11:15:15
【问题描述】:

我目前正在尝试让文本以特定的行高应用并将文本垂直居中对齐。由于 TextStyle 上没有垂直对齐的选项,我尝试使用 StrutStyle 导致 大约 将其对齐到中心。但是设置前导后,前导的高度和TextStyle高度的Text是不同的。

演示可以在dartpad查看。

    Text(
      'label A',
      style: const TextStyle(
        fontSize: 16.0,
        color: Colors.red,
        backgroundColor: Colors.blue,
      ),
      strutStyle: StrutStyle(
        fontSize: 16.0,
        leading: (70.0 / 16.0)/2,
        forceStrutHeight: true,
      ),
    ),
  1. 想问是否有任何适当的方法可以将其对准中心?文本是多行
  2. 如果现在这种情况下推荐使用前导方法,是否有任何计算可以使用前导同步正确的高度?

【问题讨论】:

  • 您可以将文本小部件包装在Center 小部件中。如果 Text 小部件在一行中,您可以使用 MainAxisAlignemnt.center
  • @UjjwalRaijada,感谢您的回复。主要问题是文本是多行并且需要行高。我知道我可能会包装一个 Container 来粗暴地做到这一点,但只是想知道是否还有其他更优雅的方式。

标签: flutter flutter-text


【解决方案1】:

Align 小部件包裹,这将帮助您在任何地方对齐。

 Align (
      alignment : Alignment.topCenter;
    child : Text(
          'label A',
          style: const TextStyle(
            fontSize: 16.0,
            color: Colors.red,
            backgroundColor: Colors.blue,
          ),
          strutStyle: StrutStyle(
            fontSize: 16.0,
            leading: (70.0 / 16.0)/2,
            forceStrutHeight: true,
          ),
        ),
    ),

【讨论】:

  • 感谢您的回复!但这可能不适合具有特定行高的多行文本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 2013-06-06
  • 2013-05-25
相关资源
最近更新 更多