The input widget scrolls, so it should give its text loose constraints. That
way the text ends up being its intrinsic size even if put in a context with
tight constraints.
Fixes#298
Add a unit test for persistent bottom sheets
ShowBottomSheet now clears its placeholder after the bottom sheet has been dismissed.
Added support for generating fling gestures to WidgetTester.
Previously we would walk from every node in layout to the root to mark the root
as needing paint. Now we leave dirty bits throughout the tree so that we can
cut off the walk as soon as we find a dirty node.
Factored OverlayRoute out of the modal and persistent bottom sheet clases, since the bottom sheet classes need to drive the performance.
Added a bottom sheet to the stocks demo: long-press on a stock shows a modal bottom sheet.
Made AnimatedModalBarrier public.
This script runs the Flutter unit tests. By default, the script assumes you
have compiled a SkyShell in an "engine/src" that's a peer to the "flutter"
directory.
Inside runApp, we were building the render tree for the app, but we weren't
calling layout, which meant we were running a hit test on a dirty tree. Now
hitTest specifically asserts that the tree is clean and we synchronously call
layout for your app during runApp.
Fixes#1960
We need to use the performance for the "from" route when going backwards. Also,
fix a bug in the HeroParty where it would call the quest finished callback
multiple times.
Fixes#1958
It's common to want a scrolling viewport but with padding around the
contents. Teaching Block about this makes the places that do this
substantially simpler and further buries ScrollableViewport and
BlockBody (they're now only used in scrollable.dart).
Draggable is now itself a gesture arena member. This means it won't
conflict with other gesture recognisers in the same path.
This also allows variants of Draggable that are triggered by other
gestures.
Also, some cleanup of DoubleTapGestureRecognizer, GestureDetector, and
PrimaryPointerGestureRecognizer.
Also, make MultiTapGestureRecognizer support a timeout for longpress.
Also, make Draggable data be typed.
Also, hide warnings about constructor warnings for now. Analyzer doesn't
support them yet. (Have to do this on a per-line basis)
Directions for future research:
- animating the avatar (enter/exit transitions)
- interaction with the navigator (canceling a drag on page navigation, etc)
- double-tap draggable
- runApp(new MaterialApp()) was crashing long after the constructor. Now
it asserts in a more useful location.
- remove the default name for NamedRouteSettings. It was unused anyway.
Now a RenderBox is considered hit if one of its children are hit or it itself
decides that it's hit. In particular, empty space inside a flex won't be hit
because none of the children are located there and a RenderFlex doesn't
consider itself hittable.
Fixes#53Fixes#1221
One Scaffold layout to rule them all
Expanded the existing CustomMultiChildLayout to handle all of the Scaffold's children.
This change also eliminates the FAB input dead-zone.
Make all the *GestureRecognizer classes inherit from a class called
GestureRecognizer. Give the old GestureRecognizer a name that is more
precise about its purpose. Remove the members of GestureArenaMember that
aren't used by GestureArenas.
- change how we expose settings at the RenderObject layer so that it's
easier to maintain.
- expose the Widget owner chain in the RenderObject layer debug output
- add debug info to RenderOpacity, RenderIgnorePointer, RenderListener
- make the output for text nodes prettier