Как дать всем детям строки одинаковый рост

Мне трудно сделать двух дочерних элементов строки, то есть TextField и RaisedButton одинаковой высоты. Высота пуговицы всегда короче. Я могу сделать это с помощью SizedBox, но это фиксированная высота и выполняется вручную. Вот как сейчас выглядит мой код и пользовательский интерфейс:

                   Row(
                     children: [
                       Padding(
                         padding: _padding,
                         child: SizedBox(
                           width: 200,
                           child: TextField(
                             keyboardType: TextInputType.number,
                             decoration: InputDecoration(
                                 labelText: 'Answer',
                                 border: OutlineInputBorder(borderRadius: BorderRadius.circular(4.0))
                             ),
                           ),
                         ),
                       ),
                       RaisedButton(
                         onPressed: _evaluate,
                         child: Text('Evaluate'),
                       ),
                     ],
                   ),

Интересно, есть ли рекомендуемый способ, как сделать детей строки одинакового роста.

Кстати, черные линии по бокам - это рамки эмулятора.

3 ответа

Нехорошо оборачивать текстовое поле контейнером и давать ему высоту, в некоторых случаях текстовое поле треснет при наборе текста, вы можете использовать внутри себя Textfield -> InputDecoration;

contentPadding: EdgeInsets.all(20),

здесь вы можете настроить высоту текстового поля.

Попробуйте обернуть строку SizedBox или контейнер с фиксированной высотой

Вы можете обернуть Row виджет с SizedBox виджет и дайте ему желаемый height:

Я добавил демонстрацию, используя ваш код в качестве примера:

 SizedBox( // new line 
      height: 60, // give it a desired height here
      child: Row(
        children: [
          Padding(
            padding: _padding,
            child: SizedBox(
              width: 200,
              child: TextField(
                keyboardType: TextInputType.number,
                decoration: InputDecoration(
                    labelText: 'Answer',
                    border: OutlineInputBorder(
                        borderRadius: BorderRadius.circular(4.0))),
              ),
            ),
          ),
          RaisedButton(
            onPressed: _evaluate,
            child: Text('Evaluate'),
          ),
        ],
      ),
    ),
Другие вопросы по тегам