Добавление спецификации c дочерних элементов столбца в конец - PullRequest
0 голосов
/ 03 апреля 2020

Это код для входа в систему / регистрации. Моя проблема в том, что я хочу, чтобы последние кнопки всегда были в определенной 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;
                    });
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    ),
  ),
);

}

1 Ответ

0 голосов
/ 03 апреля 2020

Я нашел решение методом проб и ошибок, вот мое решение:

Column(
    children: <Widget>[
      Text("item1"),
      Expanded(child: Container()),
      Text("item2"),
      Expanded(child: Container()),
      Text("item3"),
    ],
  )

просто поместите расширенный виджет между виджетами, которые вы хотите выровнять.

надеюсь, это помогло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...