Visibility constructor Null safety
Control whether the given child is visible.
The child and replacement arguments must not be null.
The boolean arguments must not be null.
The maintainSemantics and maintainInteractivity arguments can only be set if maintainSize is set.
The maintainSize argument can only be set if maintainAnimation is set.
The maintainAnimation argument can only be set if maintainState is set.
Implementation
const Visibility({
super.key,
required this.child,
this.replacement = const SizedBox.shrink(),
this.visible = true,
this.maintainState = false,
this.maintainAnimation = false,
this.maintainSize = false,
this.maintainSemantics = false,
this.maintainInteractivity = false,
}) : assert(child != null),
assert(replacement != null),
assert(visible != null),
assert(maintainState != null),
assert(maintainAnimation != null),
assert(maintainSize != null),
assert(
maintainState == true || maintainAnimation == false,
'Cannot maintain animations if the state is not also maintained.',
),
assert(
maintainAnimation == true || maintainSize == false,
'Cannot maintain size if animations are not maintained.',
),
assert(
maintainSize == true || maintainSemantics == false,
'Cannot maintain semantics if size is not maintained.',
),
assert(
maintainSize == true || maintainInteractivity == false,
'Cannot maintain interactivity if size is not maintained.',
);