Как центрировать столбец по вертикали во Flutter? Воспользовался виджетом «Новый Центр». Я использовал виджет «Новый центр», но он не центрирует мою колонку по вертикали? Любые идеи были бы полезны ....
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Thank you"),
),
body: new Center(
child: new Column(
children: <Widget>[
new Padding(
padding: new EdgeInsets.all(25.0),
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 175.0,
width: 175.0,
child: new Image.asset('assets/angry_face.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value * 6.3,
child: _widget,
);
},
),
),
new Text('We are glad we could serve you...', style: new TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w600,
color: Colors.black87),),
new Padding(padding: new EdgeInsets.symmetric(vertical: 5.0, horizontal: 0.0)),
new Text('We appreciate your feedback ! !', style: new TextStyle(
fontSize: 13.0,
fontWeight: FontWeight.w200,
color: Colors.black87),),
],
),
),
);
}
В столбце используйте:
Он выравнивает своих дочерних элементов по центру родительского пространства по вертикали.
источник
Вы управляете выравниванием дочерних элементов строки или столбца с помощью свойств mainAxisAlignment и crossAxisAlignment. Для ряда основная ось проходит горизонтально, а поперечная ось - вертикально. Для колонны главная ось проходит вертикально, а поперечная ось - горизонтально.
источник
Попробуй это. Он центрируется по вертикали и горизонтали.
источник
Другое решение!
Если вы хотите установить виджеты в центральной вертикальной форме, вы можете использовать для этого ListView. например: я использовал три кнопки и добавил их в ListView, за которым следует
import 'package:flutter/material.dart'; class List extends StatelessWidget { @override Widget build(BuildContext context) { final button1 = new RaisedButton(child: new Text("Button1"), onPressed: () {}); final button2 = new RaisedButton(child: new Text("Button2"), onPressed: () {}); final button3 = new RaisedButton(child: new Text("Button3"), onPressed: () {}); final body = new Center( child: ListView( shrinkWrap: true, children: <Widget>[button1, button2, button3], ), ); return new Scaffold( appBar: new AppBar( title: Text("Sample"), ), body: body); } } void main() { runApp(new MaterialApp( home: List(), )); }
Выход:
источник
Для меня проблема заключалась в том, что внутри столбца был расширен, который мне пришлось удалить, и это сработало.
Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: <Widget>[ Expanded( // remove this flex: 2, child: Text("content here"), ), ], )
источник
Вы могли бы использовать.
mainAxisAlignment:MainAxisAlignment.center
Так материал будет проходить через центр столбца. `crossAxisAlignment: CrossAxisAlignment.center 'Это выровняет элементы в центре в строке.Container( alignment:Alignment.center, Child: Column () )
Просто используйте.
Center ( Child: Column () )
или рэп с виджетом Padding. И отрегулируйте Padding так, чтобы дочерние элементы столбца были в центре.источник