buildStack static method
Build a Stack widget with layout properties from FlyStyle
Implementation
static Widget buildStack(
BuildContext context,
FlyStyle style,
List<Widget> children,
) {
// Check if direct Flutter API parameters are provided
final stackParams = style.stack as StackParams?;
AlignmentGeometry alignment;
TextDirection? textDirection;
StackFit fit;
Clip clipBehavior;
if (stackParams != null) {
// Use direct Flutter API parameters
alignment = stackParams.alignment ?? AlignmentDirectional.topStart;
textDirection = stackParams.textDirection;
fit = stackParams.fit ?? StackFit.loose;
clipBehavior = stackParams.clipBehavior ?? Clip.hardEdge;
} else {
// Use default values when no direct API parameters provided
alignment = AlignmentDirectional.topStart;
textDirection = null;
fit = StackFit.loose;
clipBehavior = Clip.hardEdge;
}
// Apply flex properties to children first
final childrenWithFlex = applyFlexToChildren(context, children);
// Apply position properties to children
final childrenWithPosition = applyPositionToChildren(
context,
childrenWithFlex,
);
// Note: For Stack, we don't apply gap using SizedBox like Column/Row
// Stack children are positioned absolutely or use the stack's alignment
return Stack(
alignment: alignment,
textDirection: textDirection,
fit: fit,
clipBehavior: clipBehavior,
children: childrenWithPosition,
);
}