RawEditableLine is now responsible for the scrolling behavior, which
removes the need for callbacks between RawEditableLine and Input. It
also fixes a bug whereby the whole Input widget (including its icon)
would scroll when the text got long.
This patch restructures how we size the editing region of the Input widget. Now
RenderEditableLine understands that it's a single-line editing widget and sizes
itself correctly.
Added TwoLevelList et al, a Material Expand/Collapse List Control
A TwoLevelList can can contain TwoLevelListItems, essentially ordinary list items, or TwoLevelSublists which have a list of items of their own. Tapping on a TwoLevelSublist causes it to expand, showing its items. Tapping again causes it to collapse.
The space for the keyboard is now represented as bottom padding for the window.
By teaching the scaffold to respect the bottom window padding, we move the
floating action button and snackbars out of the way of the keyboard.
This currently works on Android. I'll need to see how to get the keyboard
geometry on iOS for a similar effect.
Fixes#103
Some of the Animation classes that we converted from performances use
the term "master" to refer to the animation upon which they're based.
This patch changes them to use the term "parent", which is consistent
with the rest of the animation classes.
Now that we've decided that Animation<double> isn't confined to the interval
0.0 to 1.0, we can expand AnimationController to cover the use cases that used
to require SimulationStepper.
This patch merges SimulationStepper into AnimationController and ports the one
stand-alone client of simulation stepper over to using AnimationController.
This patch removes Performance and AnimationValue now that we've ported the
framework over to AnimationController and Tween. This patch also cleans up the
names of the AnimationController classes now that they don't have to avoid
conflicts with the old animation API. Specifically, I've made the following
renames:
* Animated -> Animation
* Evaluatable -> Animatable
* PerformanceStatus -> AnimationStatus
This patch is just renames and moving code around. There aren't any changes in
behavior.
Also, clean up the class hierarchy for AnimationController now that
we've renamed progress to value. That means everything in the hierarchy
now has a value, include Watchable. This patch renames Watchable to
Animated<T>, which lets us use that type almost everywhere.
I've added some ducktape to modal bottom sheets to avoid having to
refactor all of Navigator to use AnimationController. I'll remove the
ducktape in the next patch.
This patch removes state from the animation system, which was causing problems
as we were scaling the use of animated values.
Now the "tween" objects are stateless and can watch animations, which creates a
new object that holds both the tween and the animation instead of mutating the
tween every tick of the animation.
This patch ports one client as a proof-of-concept.
Fixes#215
RenderBlock wasn't constraining the results.
RenderPadding wasn't constraining the results (which matters
especially when the constraints can't fit the padding in the first
place).
RenderViewport wasn't constraining the results.
Add a test for the block case.
To catch this kind of thing in the future, add some asserts to
debugDoesMeetConstraints() that all four intrinsic functions return
values that are within the constraints.
RenderBlockViewport doesn't support returning intrinsics, so turn off
the "no intrinsic support" asserts (and return zero) when we're doing
this new assert.
This new assert screwed up the custom layout classes' tests, so adjust
those tests to ignore the callbacks invoked from these asserts.
Add to the _debugReportException() method a short summary of the
descendants of this node. It's important to have this information when
debugging errors like these intrinsic constraints contract violations
because often nodes just pass the values through to their child so you
have to go several steps down to find the actual problem.
Fixes https://github.com/flutter/flutter/issues/1210
As part of this:
- A lot of classes got new lerp functions, including e.g. TextStyle.
- Theme's constructor story got overhauled. You can now configure
everything if you really want to, and we're better about defaults.
- Material no longer automatically animates its background color.
(It still does for its shadow.)
- Tabs try to get the indicator color from the theme.
- The fields in ThemeData got reordered for sanity.
- Theme.== and Theme.hashCode got fixed.
- Typography got a bit of a spring cleaning.
Fixes#613.