#flutter #flutter-layout
#flutter #flutter-layout
Вопрос:
Я видел, как задавались подобные вопросы, но их ситуация была другой.
У меня есть форма с несколькими текстовыми полями. Страница прокручивается просто отлично, но при поднятой клавиатуре нижние поля не отображаются. В других решениях здесь предлагается добавить новый тег в style.css. Я пробовал это. Не сработало. Некоторые предлагали добавить «resizeToAvoidBottomInset: true» в Scaffold, сделали это, хотя на этой странице нет никакого каркаса.
Widget build(BuildContext context) {
return Scrollbar(
isAlwaysShown: true,
controller: _scrollController,
child: SingleChildScrollView(
controller: _scrollController,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 15),
child: Form(
key: _formKey,
child: Column(
children: [
_buildSummary(),
_buildDescription(),
_buildHourRate(),
_buildBudget(),
_buildBudget(),
ButtonCreate(
color: Color(0xFF18D191),
textForButton: "SUBMIT",
onPressShit: () {
if (!_formKey.currentState.validate()) {
return;
} else {
_formKey.currentState.save();
print(_summary);
print(_description);
print(_hourRate);
print(_totalBudget);
//Send to API
}
},
),
],
),
),
),
),
);
}
}
Поля построены следующим образом;
Widget _buildSummary() {
return TextFormField(
decoration: InputDecoration(
labelText: 'Summary',
labelStyle: TextStyle(color: Colors.purpleAccent.shade400),
filled: true,
fillColor: formFieldbackground.withOpacity(0.3)),
maxLength: 45,
validator: (String value) {
if (value.isEmpty) {
return 'Summary is required';
}
return null;
},
onSaved: (String value) {
_summary = value;
},
);
}
Эта форма представляет собой ModalBottomSheet.
Смотрите скриншоты
Комментарии:
1. Попробуйте удалить полосу прокрутки и контроллер из кода, указав только SingleChildScrollView@Firaun
2. @Assassin тоже это пробовал. Не сработало 🙁
Ответ №1:
Я перепробовал все, что вы, ребята, предложили, но не сработало. Однако я узнал, что проблема не в форме, а в месте (контейнере), где вызывается форма.
Таким образом, эта форма на самом деле не полноэкранная, а нижняя таблица. Поэтому он должен иметь некоторую высоту для извлечения в виде лотка. Итак, как только я уменьшил высоту контейнера, в котором вызывается эта форма, она начала работать!!
Это, черт возьми, не имеет смысла, но каким-то образом это работает.
Здесь вызывается форма;
Widget build(BuildContext context) {
return Center(
child: Container(
height: MediaQuery.of(context).size.height / 1.8, //previous height was 600;