Это код для входа в систему / регистрации. Моя проблема в том, что я хочу, чтобы последние кнопки всегда были в определенной c части экрана (например, внизу). Раскладка должна быть:
1.Некоторый текст / lo go близко к верху (всегда в одном и том же месте)
2.Входы в центре экрана
3.Кнопки рядом с основанием (всегда в одном и том же месте)
Я пытался использовать виджет выравнивания или поместить 3 части макета в 3 указанных столбца c с .spaceEvenly, но я этого не сделал иметь успех В обеих этих версиях ничего не происходит.
@override
Widget build(BuildContext context) {
print("Building login screen");
return Scaffold(
body: Container(
constraints: BoxConstraints.expand(
height: MediaQuery.of(context).size.height,
),
decoration: BoxDecoration(color: Color(0xff34056D)),
child: Form(
autovalidate: true,
key: _formKey,
child: SingleChildScrollView(
child: Padding(
padding: EdgeInsets.fromLTRB(32, 96, 32, 0),
child: Column(
children: <Widget>[
Text(
"Fitness Companion",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 36, color: Colors.white),
),
SizedBox(height: 32),
_authMode == AuthMode.Register ? _buildDisplayNameField() : Container(),
_buildEmailField(),
_buildPasswordField(),
_authMode == AuthMode.Register ? _buildConfirmPasswordField() : Container(),
SizedBox(height: 32),
ButtonTheme(
minWidth: 200,
child: RaisedButton(
padding: EdgeInsets.all(10.0),
onPressed: () => _submitForm(),
child: Text(
_authMode == AuthMode.Login ? 'Login' : 'Register',
style: TextStyle(fontSize: 20, color: Colors.white),
),
),
),
SizedBox(height: 16),
ButtonTheme(
minWidth: 200,
child: FlatButton(
padding: EdgeInsets.all(10.0),
child: Text(
'${_authMode == AuthMode.Login ? 'No account yet? Register here!' : 'Already registered? Login here!'}',
style: TextStyle(fontSize: 20, color: Colors.white),
),
onPressed: () {
setState(() {
_passwordController.clear();
_authMode = _authMode == AuthMode.Login ? AuthMode.Register : AuthMode.Login;
});
},
),
),
],
),
),
),
),
),
);
}