flutterdart

If snackbar hides then variable is initialized/redefined


Is it possible to trigger an action such as the initialization of a variable or the redefinition of an existing one after a Snackbar is dismissed (e.g. when hides or it is swiped)?


Solution


  • Yes. You can use the closed future of ScaffoldMessengerState.showSnackBar().
    It completes when the Snackbar is dismissed (timeout, swipe, or hide).
    Inside it you can run any action, like re-initializing a variable.

    Example:

    final snackBar = SnackBar(content: Text('Hello'));
    
    ScaffoldMessenger.of(context)
        .showSnackBar(snackBar)
        .closed
        .then((reason) {
      // Snackbar is dismissed → run your logic here
      myVariable = "new value";
      print('Snackbar closed with reason: $reason');
    });
    

    👉 The reason can be SnackBarClosedReason.action, timeout, swipe, etc.,
    so you can handle different cases if needed.