目前我正在尝试在带有圆边的容器顶部创建一个用户输入表单,占用整个屏幕。在那之后,有一个脚手架。
如果单击文本框,则会调整整个容器的大小。我尝试使用“resizeToAvoidBottomPadding”选项修复它,但如果文本框太远而且被键盘覆盖,那将不是一件好事。
这是它的样子:resized container with automatic resizing
我找到了解决问题的“解决方法”,但我很确定它不是应该解决的问题。我尝试这样做的方法是将脚手架放入脚手架中,如下所示:
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(),
],
),
),
],
),
),
);
最终看起来像那样:my workaround
我的两个问题是:
感谢您的帮助和问候,
卢卡斯
当我有太多输入字段时,我经常遇到这个问题。这是一个已知的错误,正在进行中(我们希望如此),但我发现最好的解决方法是使用基于mediaQuery的底部填充的容器。视图仍然不会关注所选输入,但至少用户可以滚动并查看它。
MediaQueryData mediaQuery = MediaQuery.of(context);
Container(
padding: EdgeInsets.only(
bottom: mediaQuery.viewInsets.bottom,
),
),