如何在Flutter中纵向和横向居中文本?

jer*_*jer 37 user-interface text widget alignment flutter

我想知道如何在Flutter中垂直和水平地将Text小部件的内容居中.我只知道如何使用Center(child: Text("test"))内容本身,而不是内容本身,它默认左对齐.在Android中,我相信调用实现此功能的TextView的属性gravity.

我想要的例子:

居中的文字示例

She*_*ard 70

文本对齐中心属性设置仅水平对齐.

在此输入图像描述

我使用下面的代码来垂直和水平设置文本中心.

在此输入图像描述

码:

      child: Center(
        child: new Text(
        "Keerthanai Songs",
        textAlign: TextAlign.center,
        ),
      )
Run Code Online (Sandbox Code Playgroud)

  • 如果你发现文本仍然没有垂直居中,并且你在TextStyle中设置了高度,记得在TextStyle中也设置leadingDistribution: TextLeadingDistribution.even。 (3认同)
  • @Shelly在某些情况下它不起作用,您还需要添加 heightFactor: 属性,例如: Center( heightFactor: 2.3, child: Text('SELFIE',textAlign: TextAlign.center, style: TextStyle(fontSize: 18.0, color: Colors.black、fontWeight:FontWeight.bold、) )、)、 (2认同)

Tre*_*ree 62

您可以使用构造函数的TextAlign属性Text.

Text("text", textAlign: TextAlign.center,)
Run Code Online (Sandbox Code Playgroud)

  • 我不确定为什么将其标记为答案,因为这仅使文本居中,但问题要求水平**和垂直。 (22认同)
  • 是的,这应该被删除,它没有回答问题。 (3认同)

Mik*_*ike 12

我认为,更灵活的选择是换行Text()Align()像这样:

Align(
  alignment: Alignment.center, // Align however you like (i.e .centerRight, centerLeft)
  child: Text("My Text"),
),

Run Code Online (Sandbox Code Playgroud)

使用Center()似乎TextAlign完全忽略了Text小部件。它不会对齐,TextAlign.left或者TextAlign.right如果尝试,它将保留在中心。

  • 更好的答案是这个。 (2认同)

小智 11

您需要使用textAlign文本小部件上的属性。它为我带来了最好的结果

Text(
  'Hi there',
   textAlign: TextAlign.center,                          
 )
Run Code Online (Sandbox Code Playgroud)


小智 11

文本标题必须始终位于顶部。

错误的方法:

  child: Center(
    child: Text(
      textAlign: TextAlign.center,
      "Hello World",
    ),
  ),
Run Code Online (Sandbox Code Playgroud)

正确的方法:

  child: Center(
    child: Text(
      "Hello World",
      textAlign: TextAlign.center,
    ),
  ),
Run Code Online (Sandbox Code Playgroud)

  • 虽然您在技术上是正确的,但以您描述的第一种方式执行此操作是一个语法错误,所以是的,但我认为很明显这不是执行此操作的方法,因为它甚至不会让您编译:p (4认同)

Pau*_*tta 8

                       child: Align(
                          alignment: Alignment.center,
                          child: Text(
                            'Text here',
                            textAlign: TextAlign.center,                          
                          ),
                        ),
Run Code Online (Sandbox Code Playgroud)

这对我来说是最好的结果。


小智 6

将文本放在中心:

Container(
      height: 45,
      color: Colors.black,
      child: Center(
        child: Text(
            'test',
            style: TextStyle(color: Colors.white),
        ),
      ),
    );
Run Code Online (Sandbox Code Playgroud)


Ray*_*der 5

如果你是intellij IDE用户,可以使用快捷键Alt+Enter然后选择Wrap with Center然后添加textAlign: TextAlign.center