Flutter TextField在顶部对齐文本

时间:2020-01-05 13:34:19

标签: flutter alignment textfield

我有一个像这样的TextField:

enter image description here

我希望提示和文本在顶部而不是在中心对齐。

我尝试了textAlign: TextAlign.start,但这只是为了水平对齐。

TextField(
  textAlign: TextAlign.start,
  expands: true,
  maxLines: null,
  decoration: InputDecoration(
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(3),
      ),
      hintText: 'Enter Unicode text'),
),

如何使文字显示在顶部?

我找到了答案,所以我将其添加为自我解答。

3 个答案:

答案 0 :(得分:3)

要使TextField内部的文本与顶部对齐,请使用

textAlignVertical: TextAlignVertical.top

这将为您提供想要的东西:

enter image description here

TextField(
  textAlignVertical: TextAlignVertical.top,
  expands: true,
  maxLines: null,
  decoration: InputDecoration(
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(3),
      ),
      hintText: 'Enter Unicode text'),
)

答案 1 :(得分:1)

将使用输入框中文本的垂直对齐方式。

一个y值,范围从-1.0到1.0。 -1.0与 输入框的顶部,以便文本第一行的顶部适合 在包装盒内及其填充物。 0.0对齐框的中心。 1.0对齐,以使文本的最后一行的底部与输入框的底部内部边缘对齐。

您需要确保:

TextField.textAlignVertical,将其传递到InputDecorator。

TextField(
  textAlignVertical: TextAlignVertical.top,
  expands: true,
  maxLines: null,
  decoration: InputDecoration(
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(3),
      ),
      hintText: 'Enter Unicode text'),
)

答案 2 :(得分:1)

添加 alignLabelWithHint:true


TextFormField(
  maxLines: 10,
  minLines: 5,
  decoration: InputDecoration(
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(3),
      ),
      hintText: 'Enter Unicode text'),
      alignLabelWithHint: true,
)