Как выровнять текстовое поле и текстовый виджет внутри строки в Flutter?

#flutter #dart

Вопрос:

Я новичок в flutter, я хотел бы выровнять текстовый виджет, показанный на снимке экрана, в нижней части строки, чтобы он находился в той же строке, что и поле текстовой формы. Я хотел бы переместить «Килограммы» в нижнюю часть ряда.

Снимок экрана эмулятора

Вот код:

   return Row(
    children: [
      Flexible(
        child: TextFormField(
          decoration: InputDecoration(labelText: label),
          keyboardType: _getKeyboardType(),
          validator: (value) => _getFormValidator()(value),
          onSaved: (value) { saveAction(formItem,value); },
          onTap: () {print(TextInputType.emailAddress);},
        ),
      ),
      Text('Kilos',style: TextStyle(backgroundColor: Colors.red),)
    ],
  );
 

Я попытался обернуть виджеты строки и текста в виджет выравнивания.

Ответ №1:

Вы можете достичь этого с помощью стека.. вот пример кода.

 Stack(
    children: [
      TextFormField(
        decoration: const InputDecoration(
            hintText: 'Enter a search term'
        ),
      ),
      Positioned(
          right: 0,
          bottom: 0,
          child: Text(
            'Kilos',
            style: TextStyle(backgroundColor: Colors.red),
          ))
    ],
  ),
 

введите описание изображения здесь

Ответ №2:

Вы можете попробовать с внутренней высотой и сделать свой crossAlignment.end

 IntrinsicHeight(
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.end,
              children: [
                Flexible(
                  child: Align(
                    alignment: Alignment.topLeft,
                    child: TextFormField(
                      decoration: InputDecoration(labelText: "label"),
                     /* keyboardType: _getKeyboardType(),
                      validator: (value) => _getFormValidator()(value),
                      onSaved: (value) {
                        saveAction(formItem, value);
                      },*/
                      onTap: () {
                        print(TextInputType.emailAddress);
                      },
                    ),
                  ),
                ),
                Text(
                  'Kilos',
                  style: TextStyle(backgroundColor: Colors.red),
                )
              ],
            ),
          )
 

Выход:

введите описание изображения здесь

Комментарии:

1. Спасибо, это сработало просто с атрибутом «CrossAxisAlignment.end». Извините, я новичок в dart и не понял, что конец означает дно с выравниванием по оси.