Как по вертикали центрировать текст разного размера в текстовом поле Flutter?

У меня есть TextField, как этот, где входной текст и текст подсказки имеют разные размеры.

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

В то время как текст пользовательского ввода центрируется в моем родительском контейнере, hintText - нет (верхняя часть имеет больше места, чем нижняя). Есть ли способ вертикального центрирования текста подсказки? Причина, по которой текст подсказки не совпадает с размером входного текста, заключается в том, что он занимает больше места, чем зеленый контейнер, поэтому выглядит так Enter a nu..., что не очень удобно для пользователя. (Так альтернативно, есть ли способ получить новую строку в hintText?)

Текст подсказки меньше, чтобы я мог уместить все это в виджете

Входной текст центрируется

4 ответа

Я вижу, что этому больше 2 лет, но если другие столкнутся с этой проблемой:

InputDecoration имеет свойство contentPadding.

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

Добавлять textAlignVertical: TextAlignVertical.center, в вашем TextField.

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

textAlign: TextAlign.center заставит вашу подсказку появиться в центре.

Ниже приведено решение вашей проблемы:

      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))),
  ),
)
Другие вопросы по тегам