У меня колонка с 2 детьми. Первый дочерний элемент имеет фиксированную высоту, а второй дочерний элемент имеет динамическое содержимое.
Я хочу, чтобы первый дочерний элемент был во главе экрана, а второй ребенок был посередине по вертикали.
Итак, я добавил пустой третий дочерний элемент и сделал первый и третий дочерние элементы гибкими, чтобы они одинаково разделяли вертикальное пространство:
Column(
children: [
Flexible(
child: Column(
children: [_firstChild()],
),
),
_secondChild(),
Flexible(child: Container()),
],
)
Это работает, когда содержимое второго дочернего элемента короткое.
Но если второй ребенок вырастает, он подрезает первого ребенка:
Разве Flexible
не должен распределять только пустое пространство, когда fit: FlexFit.loose
? Я попробовал обе fit
возможности. Я пытался поместить первого ребенка в SizedBox
и Align
Я пытался сделать третьего ребенка Spacer
. Пока ничего не помогло. Пустой третий дочерний элемент занимает половину оставшегося вертикального пространства.
РЕДАКТИРОВАТЬ:
Когда высота второго дочернего элемента слишком велика, чтобы сделать его вертикально центрированным без обрезки первого дочернего элемента, я хочу, чтобы он просто вел себя как Column
по умолчанию с MainAxisAlignment.start
(как первое изображение)
Center
иStack
вам подходят? - person ch271828n   schedule 09.12.2020Stack
иCenter
, второй дочерний элемент будет перекрывать первого ребенка. Если второй ребенок слишком высокий, я хочу, чтобы он просто сидел под первым ребенком. Ему больше не нужно быть в центре. - person alokraop   schedule 09.12.2020