当按下按钮时出现TextFormField错误时,小组件向下移动

时间:2019-09-21 04:42:44

标签: flutter flutter-layout

我已经在Flutter中创建了一个登录页面。我使用int sum = 0; int currentIn = in; for(int i = 0; i < in; i++) { sum = sum + (in - i) * currentIn; currentIn = currentIn * 10; } System.out.println(sum); 使此页面可滚动。 我已经使用表单验证来验证用户名和密码文本表单字段。 问题是当SingleChildScrollView下面显示错误消息时,登录按钮被向下移。

我还使用了TextFormField来启用滚动,但是就移位而言,行为是相同的。

我是Flutter的新手,正在寻求帮助。 我在下面提供了代码和屏幕截图。

谢谢。

屏幕截图

enter image description here

登录页面

ListView

登录表单

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'login_form.dart';

class LoginPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SingleChildScrollView(child: LoginForm()),
    );
  }
}

3 个答案:

答案 0 :(得分:1)

使用具有固定 maxHeight 和 minHeight 的 ConstrainedBox

ConstrainedBox(
   constraints: BoxConstraints(
      maxHeight: 70.0,
      minHeight: 70.0,
   child: TextFormField(...),
  ),
);

答案 1 :(得分:0)

尝试将usernameField和passwordField包装在扩展小部件中

            Expanded(child: usernameField),
            SizedBox(
              height: 45.0,
            ),
            Expanded(child: passwordField),

答案 2 :(得分:0)

使用“容器”小部件设置全高。

Container(
          width: double.infinity,
          height: 73, //(text field height + error label height)
          child: TextFormField(<your Text Form Field>)
          )