
This test was a bit tricky to convert because it subtly relied upon the lazy evaluation of an Iterable. The onDismissed from Dismissable happens during the animation phase of the pipeline. Previously, the ScrollableList had already been built for that frame but had not evaluated its Iterable yet. When we got to the layout phase, ScrollableList evaluated its Iterable and saw the updated version of dismissedItems. A straightforward conversion to ListView calls toList() when building the ListView, but that evaluates the iterable when buildTest() is called, which is before the calls to pump and therefore before the animation phase, meaning the Iterable sees the old value of dismissedItems. This patch fixes the test to use the normal setState pattern to signal that state upon which the build depends has changed. Now, the onDismissed callback happens during the animation phase and the StatefulBuilder is marked as dirty via setState, which causes it to rebuild the ListView and re-evaluate the Iterable, seeing the updated version of dismissedItems. This change also lets us replace the gratuious use of pumpWidget with pump now that we use setState rather than pumpWidget to trigger a rebuild.
Flutter
Flutter is a new way to build high-performance, cross-platform mobile apps. Flutter is optimized for today's, and tomorrow's, mobile devices. We are focused on low-latency input and high frame rates on Android and iOS.
Flutter is an early-stage open-source project. We are still missing core features like accessibility, text input, localization, and more. However, you can build demos and examples today. We hope you try it out and send us feedback.
-
For information about using Flutter to build apps, please see the getting started guide.
-
For information about contributing code to Flutter itself, please see CONTRIBUTING.md.
Community
Join us in our Gitter chat room or join our public mailing list, flutter-dev@googlegroups.com.
Description
Languages
Dart
75.4%
C++
16.4%
Objective-C++
2.7%
Java
2.7%
Objective-C
0.6%
Other
1.8%