Updates the overlay after the selection
has changed.
If this method is called while the SchedulerBinding.schedulerPhase is
SchedulerBinding.persistentCallbacks
, i.e. during the build, layout, or
paint phases (see WidgetsBinding.beginFrame
), then the update is delayed
until the post-frame callbacks phase. Otherwise the update is done
synchronously. This means that it is safe to call during builds, but also
that if you do call this during a build, the UI will not update until the
next frame (i.e. many milliseconds later).
Source
void update(InputValue newInput) { if (_input == newInput) return; _input = newInput; if (SchedulerBinding.instance.schedulerPhase == SchedulerPhase.persistentCallbacks) { SchedulerBinding.instance.addPostFrameCallback(_markNeedsBuild); } else { _markNeedsBuild(); } }