maintainState property Null safety

bool maintainState

Whether this entry must be included in the tree even if there is a fully opaque entry above it.

By default, if there is an entirely opaque entry over this one, then this one will not be included in the widget tree (in particular, stateful widgets within the overlay entry will not be instantiated). To ensure that your overlay entry is still built even if it is not visible, set maintainState to true. This is more expensive, so should be done with care. In particular, if widgets in an overlay entry with maintainState set to true repeatedly call State.setState, the user's battery will be drained unnecessarily.

This is used by the Navigator and Route objects to ensure that routes are kept around even when in the background, so that Futures promised from subsequent routes will be handled properly when they complete.


bool get maintainState => _maintainState;
void maintainState= (bool value)


set maintainState(bool value) {
  assert(_maintainState != null);
  if (_maintainState == value)
  _maintainState = value;
  assert(_overlay != null);