open method
Implementation
Widget open(void Function() block) {
MultiChildWidgetContext? temp = MultiChildWidgetContext.currentContext;
MultiChildWidgetContext context = MultiChildWidgetContext();
MultiChildWidgetContext.currentContext = context;
block();
MultiChildWidgetContext.currentContext = temp;
if (this is ConstraintLayout) {
(this as ConstraintLayout).children.addAll(context.contextChildren);
} else if (this is Row) {
Row row = (this as Row);
return Row(
key: key,
mainAxisAlignment: row.mainAxisAlignment,
mainAxisSize: row.mainAxisSize,
crossAxisAlignment: row.crossAxisAlignment,
textDirection: row.textDirection,
verticalDirection: row.verticalDirection,
textBaseline: row.textBaseline,
children: context.contextChildren);
} else if (this is Column) {
Column column = (this as Column);
return Column(
key: key,
mainAxisAlignment: column.mainAxisAlignment,
mainAxisSize: column.mainAxisSize,
crossAxisAlignment: column.crossAxisAlignment,
textDirection: column.textDirection,
verticalDirection: column.verticalDirection,
textBaseline: column.textBaseline,
children: context.contextChildren);
} else if (this is Stack) {
Stack stack = (this as Stack);
return Stack(
key: key,
alignment: stack.alignment,
textDirection: stack.textDirection,
fit: stack.fit,
clipBehavior: stack.clipBehavior,
children: context.contextChildren);
}
return this;
}