ScrollableList2 uses the same pattern as ScrollableGrid, which requires the
client to allocate widgets for every list item but doesn't inflate them unless
they're actually needed for the view. It improves on the original
ScrollableList by not requiring a rebuild of the whole visible portion of the
list when scrolling. In fact, small scrolls can often be handled entirely by
repainting.
We now support (vertically) scrollable grids with viewporting. If the
scroll doesn't reveal any new rows, we execute the scroll with a repaint
(i.e., no layout). If the scroll reveals a new row, we trigger a layout
to change the set of materialized children in the viewport.
This patch make grid layout much more flexible. The behavior is factored
out into a GridDelegate that's modeled after the custom layout
delegates. The patch includes a MaxTileWidthGridDelegate that implements
the old behavior and a FixedColumnCountGridDelegate that implements a
grid layout with a fixed number of columns.
Fixes#1048
When assigning a new overlayPainter, we were detaching the old overlay
painter even if the render object itself wasn't attached. Now we only
twiddle the attach/detach state of the overlay painter when we're
attached ourselves.
Fixes#1047
Require a Key on Input.
Simplify the API for Focus.at() and Focus.moveTo().
Fixes#236.
This will require an e-mail to flutter-dev.
Make Input grab focus onTap not onPointerDown.
Fixes#189.
Complain when you use Focus.at() with two different GlobalKeys that
are both in the tree at the same time.
Fixes#181.
Add dartdocs for Focus.moveTo() and Focus.moveScopeTo().
- Add RenderFractionalTranslation, a render box that does a
translation based on a FractionalOffset.
- Make FractionalOffset more like Offset
- dx/dy instead of x/y
- add /, ~/, %
- add .zero
- Add alongOffset and alongSize to FractionalOffset so that you can
easily apply FractionalOffset to Offsets and Sizes. (Better name
suggestions welcome.)
- Add transformHitTests boolean to RenderTransform (also on
RenderFractionalTranslation), and to classes based on it.
- Remove the fade from Dismissable. We can add it back using the
builder-with-child pattern like Draggable if we need it. See #1003
for tha feature request.
- Rename a bunch of variables in dismissable.dart.
- Change the test for dismissable to not handle leftwards dismisses
one pixel different from rightwards dismisses, and cleaned up the
resulting effect on the test (mostly making sure we had the right
number of pumps, with comments explaining what each one was).
Fixes#174.