setStateWithViewTransition method

void setStateWithViewTransition(
  1. void callback(), {
  2. void preTransition()?,
  3. void postTransition()?,
})

Implementation

void setStateWithViewTransition(
  void Function() callback, {
  void Function()? preTransition,
  void Function()? postTransition,
}) {
  if (preTransition != null) {
    setState(preTransition);
    context.binding.addPostFrameCallback(() {
      setStateWithViewTransition(callback, postTransition: postTransition);
    });
    return;
  }

  final transition = startViewTransition(() {
    setState(callback);
  });

  if (postTransition != null) {
    if (transition is Future) {
      transition.whenComplete(() {
        setState(postTransition);
      });
    } else {
      setState(postTransition);
    }
  }
}