首页 > 解决方案 > 颤振:如何使文本靠近容器的上边缘?

问题描述

我最近正在使用颤振。当我布局文本时,我通常将 aText放入 aContainer并设置components. 我的示例代码和图片将在下面。但是,我发现Text内容不会靠近边缘,这使得我设置的距离并不完全准确。那么我应该如何解决这个问题,或者在我的情况下有没有更好的解决方案? 文本内容不会靠近边缘

Container(
           color: Colors.red,
           width: double.infinity,
           height: ScreenAdapt.heightToDp(32),
           child: Text(
             'some text content',
             style: MyTextStyle.level3
           ),
          ),

标签: flutterdart

解决方案


简而言之,你不应该,额外的空间是为了其他字符的安全边距。


但是,有一些不安全的解决方案。要小心。仅在以下情况下使用

  1. 您已明确声明fontFamily.
  2. 您手动观察到该字体适用于每个平台(特别是 Web)。
  3. 您已经完全决定破坏其他字符和其他字体是完全可以的。

如果TextStyle.height不为空,那么它将强制行高为fontSize * heightfontSize是排版中的 EM-square。对于典型的字体,拉丁字符的上升和下降通常不超过 EM-square 的高度范围。因此,设置TextStyle.height为略大于 1.0 的值通常会在不咬入角色的情况下剪断行高。

查看Flutter 的文档

对于 Roboto,最佳位置应该在 1.05~1.10 左右(免责声明:我不是字体专家。)

在此处输入图像描述

试试这个

Container(
  color: Colors.red,
  child: Text(
    'asdfdsadfsadfasdf',
    style: TextStyle(fontFamily: 'Roboto', fontSize: 50, height: 1.0)
  ),
),

作为最后的手段,你总是可以诉诸于 a 之类的东西OverflowBox,要么关注一些值,要么提取字体的元数据并设置精确的上升和下降。


推荐阅读