title: Flutter Dismissible widget with confirmDismiss and showAlertDialog stop app
body: <p>When I try to use confirmDismiss on Dismissible widget with showAlertDialog, it pops up alert but, also throws exception and stop app. If I try to continue after exception, it works normal.</p>
  
  <p><a href="https://stackoverflow.com/q/56166236/12208004">Maybe similar to this question</a> 
  I've tried showAlertDialog to separate function and different type of calling navigation, but non of them solve it.</p>
  
  <pre><code>            Dismissible(
                confirmDismiss: (direction) {
                  return showDialog(
                    context: context,
                    builder: (context) {
                      return CupertinoAlertDialog(
                        title: Text('Delete'),
                        content: Text('Delete'),
                        actions: &lt;Widget&gt;[
                          FlatButton(
                            onPressed: () {
                              // Navigator.pop(context, false);
                              Navigator.of(
                                context,
                                // rootNavigator: true,
                              ).pop(false);
                            },
                            child: Text('No'),
                          ),
                          FlatButton(
                            onPressed: () {
                              // Navigator.pop(context, true);
                              Navigator.of(
                                context,
                                // rootNavigator: true,
                              ).pop(true);
                            },
                            child: Text('Yes'),
                          ),
                        ],
                      );
                    },
                  );
                },
                key: Key(UniqueKey().toString()),
                direction: DismissDirection.endToStart,
                onDismissed: (direction) {
                  //TODO DELETE
                  Scaffold.of(context).showSnackBar(
                    SnackBar(
                      backgroundColor: Theme.of(context).accentColor,
                      content: Text(
                        'test',
                        textAlign: TextAlign.center,
                        style: TextStyle(
                          fontSize: 20.0,
                          color: Colors.white,
                        ),
                      ),
                    ),
                  );
                },
                background: Container(
                  padding: const EdgeInsets.only(right: 20.0),
                  // alignment: AlignmentDirectional.centerEnd,
                  alignment: Alignment.centerRight,
                  color: Theme.of(context).accentColor,
                  child: Icon(
                    Icons.delete,
                    size: 32.0,
                    color: Theme.of(context).primaryColor,
                  ),
                ),
                child: Padding(
                  padding: const EdgeInsets.symmetric(horizontal: 20.0),
                  child: CartCard(),
                ),
              ),
  </code></pre>
  
  <p>this is exception</p>
  
  <pre><code>[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: 'package:flutter/src/animation/animation_controller.dart': Failed assertion: line 484 pos 7: '_ticker != null': AnimationController.reverse() called after AnimationController.dispose()
  AnimationController methods should not be used after calling dispose.
  #0      _AssertionError._doThrowNew  (dart:core-patch/errors_patch.dart:40:39)
  #1      _AssertionError._throwNew  (dart:core-patch/errors_patch.dart:36:5)
  #2      AnimationController.reverse 
  package:flutter/…/animation/animation_controller.dart:484
  #3      _DismissibleState._handleDismissStatusChanged 
  package:flutter/…/widgets/dismissible.dart:449
  &lt;asynchronous suspension&gt;
  #4      AnimationLocalStatusListenersMixin.notifyStatusListeners 
  package:flutter/…/animation/listener_helpers.dart:193
  #5      AnimationController._checkStatusChanged 
  package:flutter/…/animation/animation_controller.dart:753
  #6      AnimationController._tick (package:flutter/src/animation/animation_contr&lt;…&gt;
  </code></pre>