Вы можете использовать mainAxisAlignment
и crossAxisAlignment
свойства.Или вы можете обернуть виджет Column
с помощью виджета Center
, но это будет центрировать только поперечную ось, потому что Column
развернут до его родителя, из-за этого вам также нужно использовать mainAxisAlignment
.Существуют и другие элементы, которые вы можете получить, если хотите выровнять дочерние элементы Column
/ Row
, например:
//[MainAxisAlignment][1].start
//MainAxisAlignment.center
//MainAxisAlignment.end
//MainAxisAlignment.spaceAround
//MainAxisAlignment.spaceEvenly
//MainAxisAlignment.spaceBetween
//....
//[CrossAxisAlignment][1].baseline
//CrossAxisAlignment.start
//CrossAxisAlignment.center
//CrossAxisAlignment.end
//CrossAxisAlignment.stretch
Еще одна вещь: я видел, что вы использовали виджет Padding
длядобавить поле между RaisedButton
виджетом и Text
виджетом.Padding
также просто виджет, как Container
.Таким образом, вместо Padding
вы можете просто использовать Container
или SizedBox
с некоторыми height
, чтобы получить разницу между
Простой пример:
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
new RaisedButton(
child: new Text("Click"),
onPressed: (){},
),
Container(height: 20.0),//SizedBox(height: 20.0),
new Text('Hello'),
],
),
Обновление:
Поскольку вы непосредственно добавляете к телу Scaffold
, оберните Column
с помощью виджета Center
и удалите crossAxisAlignment
.Это должно сработать.
Если вы попробуете мой пример кода (с Container
), вам не нужно переносить, используя виджет Center
, потому что я не добавил width
для этого Container
.