Подтвердить что ты не робот

Flutter: Пытается получить нижний центр элемента в столбце, но он сохраняет выравнивание по левому краю

Я пытаюсь создать нижний центр виджета внизу столбца, но он продолжает выравниваться влево.

return new Column(
  new Stack(
    new Positioned(
      bottom: 0.0, 
      new Center(
        new Container(),
      ),
    ),
  ),
); 

Существование Позиционированных сил Контейнер слева, а не центрирования. Однако удаление позиции, помещенной в контейнер, помещается в средний центр.

4b9b3361

Ответ 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,
              )
            ),
          )