Выравнивание главной оси Flutter Row не работает

Я пытаюсь поместить две кнопки материала в ряд с ровным пространством между ними. Но виджет mainAxisAlignment не работает. Обе кнопки приклеены друг к другу в начале ряда.

Widget _buildSignInButton() {
    return Row(
      children: <Widget>[
        Container(
          child: new Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: <Widget>[
              new SignInButton(
                onPressed: () {
                  _googleSignIn();
                },
                imageUrl: 'assets/images/glogo.png',
              ),
              new SignInButton(
                onPressed: () {
                  _fbSignIn();
                },
                imageUrl: 'assets/images/fblogo.png',
              ),
            ],
          ),
        )
      ],
    );
  }

 Widget build(BuildContext context) {
    return Container(
        child: _buildSignInButton()


    );
  }

1 ответ

Решение

Попробуйте упростить код следующим образом:

Row(
  // children: <Widget>[
  //   new Container(
  //     child: new Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: <Widget>[
          new Text('123'),
          new Text('456'),
        ],
  //     ),
  //   ),
  // ],
),

или заменить Container с Expanded:

Row(
  children: <Widget>[
    new Expanded(
      child: new Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: <Widget>[
          new Text('123'),
          new Text('456'),
        ],
      ),
    ),
  ],
),

Проверьте документ для более подробной информации о различиях: https://flutter.io/docs/development/ui/layout/box-constraints

Другие вопросы по тегам