Convert dismissable_test.dart to ListView (#8078)
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.
Showing
Please register or sign in to comment