В настоящее время я пытаюсь создать пользовательскую форму ввода поверх контейнера с закругленными краями, которая занимает весь экран. За этим стоит эшафот.
Если я нажму на текстовое поле, размер всего контейнера будет изменен.
Я попытался исправить это с помощью опции «resizeToAvoidBottomPadding», но это не очень хорошо, если текстовое поле расположено слишком далеко и закрыто клавиатурой.
Вот как это выглядит:
контейнер с автоматическим изменением размера
Я нашел «обходной путь» для решения проблемы, но я почти уверен, что это не так, как нужно решать. Я пытался это сделать, положив леску в лес следующим образом:
Scaffold(
resizeToAvoidBottomPadding: false,
body: SafeArea(
child: Stack(
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height,
margin: EdgeInsets.symmetric(horizontal: 10.0, vertical: 10.0),
padding: EdgeInsets.symmetric(vertical: 30.0, horizontal: 20.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.0),
color: Colors.green,
),
),
Scaffold(
backgroundColor: Colors.transparent,
body: ListView(
children: <Widget>[
TextField(),
],
),
),
],
),
),
);
что в итоге выглядит так: мой обходной путь
Мои два вопроса к вам:
- есть ли "правильный" способ сделать это?
- если нет, то это "разумный" способ решить это?
Спасибо за вашу помощь и наилучшими пожеланиями,
Lukas