8

我有一个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,
      ),
    ),
);

虽然用户输入文本在我的父容器中居中,但hintText 不是(顶部空间比底部空间大)。有没有办法将提示文本垂直居中?

提示文本与输入文本大小不同的原因是它比绿色 Container 占用的空间更多,所以看起来像Enter a nu...,这对用户不是很友好。(或者,有没有办法在hintText中有换行符?)

提示文本更小,以便我可以将其全部放入小部件中

输入文本居中

4

4 回答 4

3

我看到这已经超过 2 年了,但万一其他人遇到这个问题:

InputDecoration 具有属性 contentPadding。

TextField(
  decoration: InputDecoration(
    hintText: 'Hint Text',
    contentPadding: EdgeInsets.all(10.0),
  ),
);
于 2020-08-08T01:51:01.603 回答
0

添加textAlignVertical: TextAlignVertical.center,您的文本字段。

注意:确保你没有用其他容器或其他任何东西修改它,如果你这样做了,那么也要检查这些小部件。

TextField(
  textAlignVertical: TextAlignVertical.center, 
),
于 2021-04-29T19:41:53.877 回答
-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))),
  ),
)
于 2021-02-26T06:43:59.590 回答
-1
new TextField(
  decoration: new InputDecoration(
    hintText: 'your hint',
  ),
  textAlign: TextAlign.center,
)

textAlign: TextAlign.center将使您的提示出现在中心。

于 2017-11-17T05:59:31.123 回答