Answer: I think might be the closest if you do not want to create your own Dismissible widget.below is a quick example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | class FadingDismissible extends StatefulWidget { final String text; FadingDismissible({@required this.text}); @override _FadingDismissibleState createState() => _FadingDismissibleState(); } class _FadingDismissibleState extends State<FadingDismissible> { double opacity = 1.0; StreamController<double> controller = StreamController<double>(); Stream stream; double startPosition; @override void initState() { super.initState(); stream = controller.stream; } @override void dispose() { super.dispose(); controller.close(); } @override Widget build(BuildContext context) { return Dismissible( key: GlobalKey(), child: StreamBuilder( stream: stream, initialData: 1.0, builder: (context, snapshot) { return Listener( child: Opacity( opacity: snapshot.data, child: Text(widget.text), ), onPointerDown: (event) { startPosition = event.position.dx; }, onPointerUp: (event) { opacity = 1.0; controller.add(opacity); }, onPointerMove: (details) { if (details.position.dx > startPosition) { var move = details.position.dx - startPosition; move = move / MediaQuery.of(context).size.width; opacity = 1 - move; controller.add(opacity); } }, ); }, ), ); } } |
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.