#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 и не понял, что конец означает дно с выравниванием по оси.