Растянуть виджет только по ширине внутри Expanded - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь создать приложение с двумя разделами, помещенными в столбец с CrossAxisAlignment.stretch. 2 секции заключены в расширенное пространство, чтобы заполнить вертикальное пространство. В верхней части есть 2 кнопки в столбце, который поддерживает высоту кнопок, но растягивает их до полной ширины, что я и хочу. В нижней части есть одна кнопка, поэтому я использовал Контейнер, чтобы заключить ее, но затем кнопка растягивается до полной ширины и высоты Контейнера. Я пробовал использовать ограничения контейнера, но не смог заставить его работать. Я мог бы использовать столбец вместо контейнера, но, как говорится в документации:

Если у вас только один дочерний элемент, рассмотрите возможность использования Align или Center для размещения ребенка.

Использование любого из этих вариантов соответствует ширине и высоте кнопки, но я не могу найти способ увеличить ширину.

final appScreen = Container(
  margin: EdgeInsets.symmetric(horizontal: 40),
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.stretch,
    children: <Widget>[
      Expanded(
        flex: 3,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            RaisedButton(
              child: Text('Button 1'),
              onPressed: null,
            ),
            RaisedButton(
              child: Text('Button 2'),
              onPressed: null,
            ),
          ],
        ),
      ),
      Expanded(
        child: Container(
          child: RaisedButton(
            child: Text('Button 3'),
            onPressed: null,
          ),
        ),
      ),
    ],
  ),
);

app screenshot

...