#flutter #alignment
Вопрос:
Выравнивание внутри стека дает мне результат, который я не понимаю.
Вот код:
Container(
height: totalHeight,
child: Stack(
children: [
Align(
alignment: Alignment.topCenter,
child: Container(
width: avatarSize,
height: avatarSize,
decoration: BoxDecoration(
shape: BoxShape.circle,
image: DecorationImage(
image: imageProvider,
fit: BoxFit.cover,
)
),
),
),
Align(
alignment: Alignment.bottomCenter,
child: Container(
width: 35,
height: 20,
color: Colors.yellow,
),
)
],
),
);
Желтый контейнер всегда появляется в левом нижнем углу, что бы я ни делал.
Я хочу, чтобы он был в нижнем центре.
Размер аватара, конечно, больше 35. Я поместил внешний контейнер, чтобы позволить стеку расшириться до этого внешнего родителя. Кажется, все естественно, но не работает. Странный.
Чего мне здесь не хватает?
Комментарии:
1. Для меня это прекрасно работает.
2. Проблема не в этом коде, он может быть в родительском виджете, поделитесь полным кодом с нами, чтобы мы могли вам помочь
3. @faroukosama это действительно родительский виджет, когда я устанавливаю ширину контейнера в размер аватара, он также работает. Тем не менее я озадачен, почему родительский виджет должен влиять на выравнивание в стеке с четко определенным центром. Должна быть какая-то причина, но я ее не понимаю.
Ответ №1:
Лучший виджет для выравнивания чего-либо внутри стека-это виджет позиционирования. Я думаю, что это может решить вашу проблему
Комментарии:
1. На самом деле я знаю этот виджет, но преимущество выравнивания в том, что оно позволяет идеально центрировать два виджета, при этом вам нужно знать размер, который вы иногда просто не знаете. По этой причине выравнивание-это правильный путь.