当键盘显示为颤动时,所有小部件都会调整大小

时间:2019-07-29 22:15:48

标签: flutter

我的布局中有两个TextField,我担心显示键盘时所有项目的大小都会改变。

带有和不带有键盘的布局如下图所示。

layout without keyboard layout with keyboard

显示键盘时,所有小部件(TextField TextButton)的大小都会调整到顶部。

因为我的小部件都包裹在SingleChildScrollView中,所以即使屏幕很小,我们也可以滚动查看所有项目,因此没有问题。

Widget _buildCamposLogin() {
  return Form(
    key: _formKey,
    child: Container(
      margin: EdgeInsets.only(bottom: 50.0, left: 30.0, right: 30.0),
      child: SingleChildScrollView(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            _buildLoginText(),
            _buildCampoCPF(),
            _buildCampoSenha(),
            _buildSubmitButton(),
            _buildCadastroText(),
          ],
        ),
      ),
    ),
  );
}

所以,问题是我觉得将所有内容移到顶部很奇怪,最好不要只移动已聚焦的TextField以及位于此TextField上方的其他东西,而不是移动集中在TextField上方和下方的所有内容。

如果您认为这样更好,将上方的TextField和窗口小部件移到顶部的解决方案是什么?

为什么我的问题没有重复

在标记的问题中,那个家伙问如何防止键盘移动小部件。答案说要在resizeToAvoidBottomInset: false中设置Scaffold。这与我要的完全不同。

我确实希望键盘将小部件移动到顶部。问题在于它移动了我所有的小部件,底部的2个TextFieldRaisedButton和2个Text。我只想移动显示为以下示例的TextField

请注意以下两张图片与我已经上传的其他图片之间的区别。

Layout I desire without keyboard Layout I desire with keyboard

0 个答案:

没有答案