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.
Maybe similar to this question I've tried showAlertDialog to separate function and different type of calling navigation, but non of them solve it.
Dismissible(
confirmDismiss: (direction) {
return showDialog(
context: context,
builder: (context) {
return CupertinoAlertDialog(
title: Text('Delete'),
content: Text('Delete'),
actions: <Widget>[
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(),
),
),
this is exception
[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
<asynchronous suspension>
#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<…>