Исходя из разработки для Android, что эквивалентно 'android: layout_gravity = "center_vertical"' в Flutter?
У меня есть две коробки в стеке, которые я бы хотел выровнять по центру по вертикали.Однако размер самого большого элемента не фиксирован, поэтому я не могу использовать какие-либо фиксированные значения.Это представляет некоторую трудность, так как у меня нет возможности позиционировать одного ребенка по отношению к другому.В Android все, что вам нужно сделать, это установить 'layout_gravity' в значение 'center_vertical' для дочерних элементов.
Это то, что я имею до сих пор.Положение значка фиксировано, что нехорошо.
class CardItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new SizedBox(
width: double.infinity,
child: Stack(
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(72.0, 6.0, 12.0, 6.0),
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: 150.0,
),
child: Material(
elevation: 8.0,
borderRadius: BorderRadius.circular(12.0),
color: Colors.white,
child: InkWell(
onTap: () => {},
child: Padding(
padding: EdgeInsets.fromLTRB(76.0, 24.0, 6.0, 24.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Text('Computer',
style: Theme.of(context).textTheme.headline),
Text('电脑',
style: Theme.of(context).textTheme.subhead.apply(fontWeightDelta: -2)
),
],
),
),
),
),
)
),
Align(
alignment: Alignment.centerLeft,
child: Padding(
padding: EdgeInsets.fromLTRB(12.0, 0.0, 0.0, 0.0),
child: SizedBox.fromSize(
size: Size.fromRadius(60.0),
child: Material(
elevation: 12.0,
shape: CircleBorder(),
child: Image.asset('image.png'),
),
),
),
),
],
)
);
}
}