buildColumn static method
Build a Column widget with layout properties from FlyStyle
Implementation
static Widget buildColumn(
BuildContext context,
FlyStyle style,
List<Widget> children,
) {
// Check if direct Flutter API parameters are provided
final colParams = style.col as ColParams?;
MainAxisAlignment mainAxisAlignment;
CrossAxisAlignment crossAxisAlignment;
MainAxisSize mainAxisSize;
TextBaseline? textBaseline;
TextDirection? textDirection;
VerticalDirection verticalDirection;
if (colParams != null) {
// Use direct Flutter API parameters
mainAxisAlignment =
colParams.mainAxisAlignment ??
resolveMainAxisAlignment(style.justify);
crossAxisAlignment =
colParams.crossAxisAlignment ??
resolveCrossAxisAlignment(style.items);
mainAxisSize =
colParams.mainAxisSize ??
(style.inline == true ? MainAxisSize.min : MainAxisSize.max);
textBaseline = colParams.textBaseline;
textDirection = colParams.textDirection;
verticalDirection =
colParams.verticalDirection ??
(style.reverse == true
? VerticalDirection.up
: VerticalDirection.down);
} else {
// Use utility method parameters
mainAxisAlignment = resolveMainAxisAlignment(style.justify);
crossAxisAlignment = resolveCrossAxisAlignment(style.items);
mainAxisSize = style.inline == true ? MainAxisSize.min : MainAxisSize.max;
textBaseline = null;
textDirection = null;
verticalDirection = style.reverse == true
? VerticalDirection.up
: VerticalDirection.down;
}
// Apply flex properties to children first
final childrenWithFlex = applyFlexToChildren(context, children);
// Apply gap if specified
final gap = resolveSpacing(context, style.gap);
final childrenWithGap = gap > 0
? applyGap(childrenWithFlex, gap)
: childrenWithFlex;
return Column(
mainAxisAlignment: mainAxisAlignment,
crossAxisAlignment: crossAxisAlignment,
mainAxisSize: mainAxisSize,
textBaseline: textBaseline,
textDirection: textDirection,
verticalDirection: verticalDirection,
children: childrenWithGap,
);
}