requestUpdateState method

void requestUpdateState([
  1. VoidCallback? callback,
  2. AdapterUpdateReason? reason
])

Implementation

void requestUpdateState([VoidCallback? callback, AdapterUpdateReason? reason]) {
  if (!mounted) return;
  final phase = SchedulerBinding.instance.schedulerPhase;
  void doSetState() {
    if (!mounted) return;
    setState(() {
      if (callback != null) callback();
    });
  }
  // Avoid setState during build; defer to next frame.
  if (phase == SchedulerPhase.persistentCallbacks || phase == SchedulerPhase.midFrameMicrotasks) {
    SchedulerBinding.instance.addPostFrameCallback((_) => doSetState());
    SchedulerBinding.instance.scheduleFrame();
  } else {
    doSetState();
  }
}