如何在TextField中垂直居中大小不同的hintText?

10

我有一个像这样的TextField,其中输入文本和提示文本大小不同。

TextField(
    style: Theme.of(context).textTheme.subhead.copyWith(
      fontSize: 70.0,
    ),
    decoration: InputDecoration(
      hintText: 'Enter a number',
      hideDivider: true,
      hintStyle: TextStyle(
        color: Colors.grey[500],
        fontSize: 25.0,
      ),
    ),
);

用户输入的文本在父容器中居中,但提示文本不是(顶部比底部有更多空间)。是否有办法将提示文本垂直居中?
提示文本大小与输入文本不同的原因是它占用的空间比绿色容器大,所以看起来像“输入一个数...”,这并不是很用户友好。 (因此,另一种选择是,在提示文本中换行是否有方法?)

Hint text is smaller so that I can fit it all in the widget

Input text is centered


整个TextField已经作为一个小部件居中了,我认为不能单独更改提示文本,因为您的小部件已经居中了,您想要实现什么? - Shady Aziza
包含输入文本的小部件是居中的,但其伴随的提示文本(hintText)尺寸较小且未居中。我已经更新了我的问题,并提供了更好的图像示例。我希望提示文本“输入数字”在垂直方向上居中。 - Mary
4个回答

5

我知道这篇文章已经超过两年了,但是以防其他人也遇到了这个问题:

InputDecoration有一个contentPadding属性。

TextField(
  decoration: InputDecoration(
    hintText: 'Hint Text',
    contentPadding: EdgeInsets.all(10.0),
  ),
);

0
在你的TextField中添加textAlignVertical: TextAlignVertical.center
注意:确保你没有用其他容器或任何其他东西修改它,如果你这样做了,那么也要检查这些小部件。
TextField(
  textAlignVertical: TextAlignVertical.center, 
),

不起作用 - WaheedHussain
@WaheedHussain,能否请你分享一下你的TextField以及TextField周围包装的部件代码,这样我可以更好地帮助你呢? - Kamal Panara
当提示文本和文本字段中的字体大小不同时,文本不会居中对齐。 - WaheedHussain

-1
new TextField(
  decoration: new InputDecoration(
    hintText: 'your hint',
  ),
  textAlign: TextAlign.center,
)

textAlign: TextAlign.center 会让你的提示居中显示。


1
谈论高度 - Shady Aziza
是的,我应该澄清一下 - 我说的是垂直居中,而不是水平居中。我已经更新了我的问题。 - Mary

-1
以下是您问题的解决方案:
Container(
  color: Colors.red,
  width: 1000,
  height: 500,
  alignment: Alignment.center,
  child: TextFormField(
    keyboardType: TextInputType.emailAddress,
    autofocus: false,
    style: new TextStyle(fontSize: 20),
    decoration: InputDecoration(
        hintText: 'Email', hintStyle: TextStyle(color: Color(0xff777777))),
  ),
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接