stable but not actively maintained
Conditionally wrap a subtree with a parent widget without breaking the code tree.
condition
: the condition depending on which the subtreechild
is wrapped with the parent.child
: The subtree that should always be build.parentBuilder
: builds the parent with the subtreechild
iffcondition
is true.parentBuilderElse
: optional builder to wrapchild
iffcondition
is false. (returns justchild
when this is null)
Usage:
return ConditionalParentWidget(
condition: shouldIncludeParent,
parentBuilder: (Widget child) => SomeParentWidget(child: child),
child: Widget1(
child: Widget2(
child: Widget3(),
),
),
);
Instead of:
Widget child = Widget1(
child: Widget2(
child: Widget3(),
),
);
///
return shouldIncludeParent ? SomeParentWidget(child: child) : child;