This should handle a case like a stateful component inside a Container
inside another Container having one of those Containers removed while
still keeping that stateful component around with its state.
The problem of how to handle the Container then being reinserted is a
separate issue not handled by this patch.
Convert Dismissable to use gestures
Convert Dismissable to use the ScrollStart, ScrollUpdate, and ScrollEnd gestures. Support for fling gestures is TBD.
Included a basic unit test that checks that one item can be dismissed with a press-drag-release gesture.
Fixed the scroll gesture recognizer: if the last pointer goes up and candidate recognizers still exist, then reject the gesture.
Convert Dismissable to use the ScrollStart, ScrollUpdate, and ScrollEnd gestures. Support for fling gestures is TBD.
Included a basic unit test that checks that one item can be dismissed with a press-drag-release gesture.
Fixed the scroll gesture recognizer: if the last pointer goes up and candidate recognizers still exist, then reject the gesture.
This patch makes ParentDataNode less general purpose and instead teaches Flex
and Stack how to program the parent data for their children. We used to have
this general system because parent data used to carry CSS styling, but we don't
need it anymore.
Fixes#957
Adds a HomogeneousViewport class that works like MixedViewport but
handles only children that have all the same height.
Converts ScrollableWidgetList to use that, so that we don't waste a
frame looking at the size of the contents each time we change size.
This allows a number of seemingly pointless double-pumps in the tests
to be removed.
Other changes that were necessary to support the above:
- RenderBlock now supports minExtent (think 'min-height' in CSS)
- RenderBlock now supports itemExtent (forces the height of each
child to be the same, so that the itemExtent passed to the fixed-
height scrollables are all authoritative instead of a source of
bugs when they don't match)
- RenderBlockViewport now supports horizontal scrolling
- improved the style of the isInfinite assert in box.dart
- fixed the position of a comment in mixed_viewport.dart
- added a test
- made the logic for how many items to show be more precise
If there are no other gestures in the arena, we should kick off the scroll
gesture right away. This change pulled a refactoring of how we dispatch events
to Widgets. Now we dispatch events to Widgets interleaved with their associated
RenderObjects. (Previously we dispatched to all of the RenderObjects first.)
Add a way of having keys based on numeric types or DateTimes by having a ValueKey<T> class.
Remove the redundant ways of declaring things, except for leaving one shorthand -- you can say `new Key(s)` instead of `new ValueKey<String>(s)`.
Also, rename build_utils.dart to widget_tester.dart. These files are now named
for their most commonly used classes.
Finally, add a .analysis_options to silence the (intentional) analyzer warnings
in append_child_test.dart.
- add debugDescribeSettings to a few classes that were missing it
- fix some minor bugs in RenderShrinkWrapWidth and ShrinkWrapWidth
- introduce RenderShrinkWrapHeight and ShrinkWrapHeight
This lets clients listen for when a widget with a given global key goes through
a sync operation. We'll need this for mimic to track its mimicable when it
moves around the tree.
This patch adds a new test harness and a first, trivial test to run with the
harness. The new test harness is built on package:test and should run on
Travis. Over time, we'll migrate our existing tests into this harness.