Flutter: Пытается получить нижний центр элемента в столбце, но он сохраняет выравнивание по левому краю
Я пытаюсь создать нижний центр виджета внизу столбца, но он продолжает выравниваться влево.
return new Column(
new Stack(
new Positioned(
bottom: 0.0,
new Center(
new Container(),
),
),
),
);
Существование Позиционированных сил Контейнер слева, а не центрирования. Однако удаление позиции, помещенной в контейнер, помещается в средний центр.
Ответы
Ответ 1
Выравнивание это путь, если у вас есть только один ребенок.
Если у вас есть больше, подумайте о том, чтобы сделать что-то вроде этого:
return new Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
//your elements here
],
);
Ответ 2
1) Вы можете использовать виджет Align с FractionalOffset.bottomCenter
.
2) Вы также можете установить left: 0.0
и right: 0.0
в Positioned
.
Ответ 3
Я использовал этот подход,
То, что я хочу, это layout
всегда внизу, но всякий раз, когда всплывает клавиатура, этот layout
также появляется поверх него.
![enter image description here]()
body: Container(
color: Colors.amber,
height: double.maxFinite,
child: new Stack(
//alignment:new Alignment(x, y)
children: <Widget>[
new Positioned(
child: myWidget(context, data.iconName, Colors.red),
),
new Positioned(
child: new Align(
alignment: FractionalOffset.bottomCenter,
child: myWidget(context, data.iconName, Colors.green)
),
)
],
),
),
Ответ 4
Оберните ваш контейнер в виджет SingleChildScrollView(). Тогда это не будет выше, когда клавиатура всплывает.
Ответ 5
Expanded(
child: Align(
alignment: FractionalOffset.bottomCenter,
child: Padding(
padding: EdgeInsets.only(bottom: 10.0),
child: //Your widget here,
)
),
)