2438 Commits

Author SHA1 Message Date
Adam Barth
fd30f63161 Replace Scrollbar with Scrollbar2 (#8133) 2017-02-14 08:55:16 -08:00
Hans Muller
ef004ae97d New Heroes (#8112) 2017-02-14 08:20:16 -08:00
Adam Barth
a816611de1 Port remaining ScrollableViewport tests to SingleChildScrollView (#8129)
Also, rename ScrollableMetrics to ScrollMetrics, which follows the
naming convention for most of the other classes (e.g., ScrollPosition,
ScrollPhysics).

Finally, fix a bug whereby SingleChildScrollView could not have a
GlobalKey, because, write test, find bug.
2017-02-13 23:41:27 -08:00
Adam Barth
9df8b7211b Deprecate old list-based scrolling widgets (#8120)
- MaterialList
 - ScrollableList
 - ScrollableLazyList
 - LazyBlock

All of these widgets can be replaced by ListView now.
2017-02-13 17:45:29 -08:00
Ian Hickson
c67575703c Improve testing of the RefreshIndicator widget. (#8111) 2017-02-13 16:31:20 -08:00
Adam Barth
73518545e8 Port state_setting_in_scrollables_test to Sliver-based scrolling (#8116)
Also fixes a bug when trying to update the offset of a viewport in a layout
builder.

Fixes #8054
2017-02-13 16:25:26 -08:00
Adam Barth
2a6b6ac1eb Add some debugging aids (#8108)
I've been using these locally, but they're likely to be useful to other people
as well.
2017-02-13 15:35:48 -08:00
Adam Barth
c40b92b910 Material should unconditionally repaint on LayoutChangedNotification (#8107)
When a ListView scrolls, it generates a LayoutChangedNotification, which was
causing Material to repaint unconditionally. That's not necessary if there are
no ink effects that need to be moved. This patch skips the repaint in that
case.

Fixes #7937
2017-02-13 15:10:05 -08:00
Adam Barth
07045c20a3 Fix cross-axis padding on reversed ListViews (#8077)
Previously the "left" padding was applied on the right when hit testing
a reversed vertical list view.
2017-02-12 12:31:00 -08:00
Adam Barth
7cde72fea2 Make remember_scroll_position_test.dart pass (#8074)
We've decided not to store the scroll position in PageStorage because
routes now maintainState by default.

Fixes #8051
2017-02-11 13:13:01 -08:00
Adam Barth
2bb94ec98a Remove most remaining ScrollableList clients (#8048) 2017-02-09 23:41:14 -08:00
Ian Hickson
8d2dcc3c9a Trivial improvements to the Drawer docs. (#8043)
Having the drawer docs lead with "this is a drawer" wasn't very
helpful when scanning.

qv. study P6.
2017-02-09 22:09:15 -08:00
Alexandre Ardhuin
00cbdb3800 prefer const constructor (#8031) 2017-02-09 15:18:49 -08:00
Alexandre Ardhuin
60f5cbbad2 no const contructor for GlobalKey (#8038) 2017-02-09 15:17:45 -08:00
Mehmet Fidanboylu
ca2c54bac2 Support changing the dismissable threshold (#8007)
* Support changing the dismissable threshold for any direction for dismissable widget.

* Fixing review comments.
2017-02-09 09:46:43 -08:00
Adam Barth
3ca921610c Remove ScrollableGrid (#8020)
All the clients have migrated to GridView.  Also, remove RenderGrid,
which isn't needed by GridView.
2017-02-08 22:08:56 -08:00
Adam Barth
311e77ab7c Fix main stocks screen (#8008)
We weren't triggering a relayout when the number of children changed.

Fixes #8001
2017-02-08 20:40:07 -08:00
Ian Hickson
83a4cf269f Port AppBar to Scrollable2 (#7996)
Move the back button and drawer opening logic into the app bar.

Move the tap-status-bar-to-scroll-to-top logic to using
ScrollControllers. Provide a PrimaryScrollController and a `primary`
flag on scroll views.

Make it possible to track when a route becomes or stops being poppable.
2017-02-08 18:16:19 -08:00
David Yang
8838a8fbfa Allow for customization of hintText style in InputField (#7942)
* Allow for customization of hintText in InputField

* Adding tests.
2017-02-08 17:50:53 -08:00
Adam Barth
1ec625ffad Remove PageableList (#7997)
All clients have moved to PageView.
2017-02-08 15:50:30 -08:00
Ian Hickson
761cf15c2b Fix the SliverPadding debugPaint (#7989)
...for the case where there's no right or bottom padding.
2017-02-08 15:22:20 -08:00
Adam Barth
4e95701541 Switch TabBarView to PageView (#7982)
Tabs are now fully driven by slivers.
2017-02-08 14:55:18 -08:00
Adam Barth
2116f00b5f Switch TabBar to sliver-based scrolling (#7964) 2017-02-08 10:34:15 -08:00
Alexandre Ardhuin
28defe5053 use const constructor (#7968) 2017-02-08 10:33:31 -08:00
Adam Barth
d29a94c379 Deploy Scrollable2.ensureVisible (#7951)
Also, switch Stepper over to using sliver-based scrolling.
2017-02-07 22:18:25 -08:00
Adam Barth
2eb4f2c37a Add PageController (#7948)
This patch improves PageView to the point where we can use it in the date
picker. Specifically, you now get onPageChanged notifications and you can
control which page is visible using a PageController.
2017-02-07 15:51:41 -08:00
Adam Barth
6ddd0bb4b8 Make ensureVisible work with sliver-based viewports (#7920)
There appears to be an issue with children before the center widget.
I've filled a bug about that issue and will follow up in a later patch.
2017-02-07 15:22:18 -08:00
Hans Muller
c08bac8335 Form needs to clean up its scopedWillPopCallback (#7936) 2017-02-07 14:49:15 -08:00
Hans Muller
80956517e6 Additional TabController, DefaultTabController docs (#7930) 2017-02-07 14:32:03 -08:00
Adam Barth
06f879b57e Add ScrollController.initialScrollOffset (#7916)
Also, move the creation of the ScrollPosition to ScrollController.

Finally, remove TestScrollable in favor of CustomScrollView, which is the
production version of this widget.
2017-02-06 22:15:36 -08:00
Adam Barth
7f2dc47094 Add ScrollController (#7910)
If you pass a ScrollController to a Scrollable2, you can use the controller to
read and write the scroll offset without having to find the Scrollable2State
object.
2017-02-06 17:09:00 -08:00
Adam Barth
2e9986614d Use sliver-based scrolling in more places (#7893)
In particular, we now use ListView in the about dialog.
2017-02-06 16:13:48 -08:00
Adam Barth
c32fa70d9d Add missing @required (#7904)
These arguments are actually required because we assert that they're not null.
2017-02-06 14:50:26 -08:00
Ian Hickson
e46f6e76b3 Provide more const constructors for keys. (#7907) 2017-02-06 14:43:11 -08:00
Adam Barth
57ee52636b Remove old-style grid widgets (#7898)
These widget don't have any clients anymore. Consider using GridView instead.
2017-02-06 10:30:49 -08:00
Ian Hickson
b6aec82e1b AppBar -> PersistentHeader (#7899) 2017-02-06 10:29:26 -08:00
Jacob Richman
53fc96da9e Small Flutter strong mode cleanup fixes. (#7825)
* Small Flutter strong mode cleanup fixes.

These are cases where strong mode down cast composite errors
generally indicated cases that would performance or correctness
issues if Flutter code was run in a strong mode VM.

* Fix Command API so that it is always in terms of Map<String,String>.

* Fix typedef
2017-02-06 08:55:09 -08:00
Adam Barth
079db95b80 Switch DatePicker to SliverGrid (#7890)
After this patch, the old grid code is not used in the framework.
2017-02-05 22:01:16 -08:00
Adam Barth
31e2a500f7 Use sliver-based scrolling in more places (#7892)
This patch uses sliver-based two more gallery demos, the stocks example,
in the date picker, and in markdown.
2017-02-05 21:39:24 -08:00
Adam Barth
0bcecef5de Convert ShrineHome to use CustomScrollView (#7887)
This patch converts the Shrine home page to using a sliver-based grid.
This required using a CustomScrollView to mix the block at the top with
the grid below.
2017-02-04 16:43:02 -08:00
Adam Barth
921c0fa5e4 Improve and document SliverGrid delegate structure (#7884)
We now create a GridLayout object that memoizes the layout information
for a given SliverConstraints. This approach is both more efficient
(because the delegate no longer needs to re-solve its layout for each
child) and allows for more code sharing between delegates.

The SliverGridRegularTileLayout will also be useful for the date
picker.

Also, document the grid delegates.
2017-02-04 10:02:13 -08:00
Adam Barth
7f79cced7e Give more control to SliverChildDelegate (#7885)
This patch moves the resonsibility for wrapping repaint boundaries
around children to SliverChildDelegate, which means delegates can choose
whether or no to use repaint boundaries.

Also introduce SliverChildBuilderDelegate to make it easier to use the
builder pattern with sliver lists.

This functionality will be used by date picker, which wants to use a
SliverGrid but doesn't need a repaint boundary around every day in a
month grid.
2017-02-04 09:34:14 -08:00
weisong0
b339c71523 Allow multiple observers for the Navigator and MaterialApp (#7883)
* allow mulitple observers for Navigator and MaterialApp

* add test for the navigator observers

* fix style

* add test for adding/removing a navigator observer
2017-02-04 00:51:32 -08:00
Adam Barth
ff14f35d6d CustomScrollView (#7881)
Also, use CustomScrollView in Shrine and fix a bug with one-line grids
not painting properly due to their reporiting zero paintExtent.
2017-02-03 22:52:25 -08:00
Adam Barth
667424659d Rename SliverLogicalParentData.scrollOffset to layoutOffset (#7871)
This quantity is actually the layoutOffset of the child, not its scroll offset.
2017-02-03 20:47:16 -08:00
Adam Barth
20402ba70a Remove MaxTileWidthGrid (#7875)
This widget has no clients. Please use GridView.extent instead.
2017-02-03 20:08:09 -08:00
Ian Hickson
471e91d46f SliverBlock->SliverList (#7872) 2017-02-03 17:14:00 -08:00
Adam Barth
f2ea7304c8 PageView shouldn't squish when overscrolled (#7870)
This patch passes down the viewportMainAxisExtent so that RenderSliverPage can
pick it up and size its children appropriately.
2017-02-03 16:43:04 -08:00
Ian Hickson
332a23030b Rename and refactor ScrollView hierarchy (#7865)
This prepares us for a CustomScrollView that takes slivers.
2017-02-03 16:05:43 -08:00
Adam Barth
7fea0593f5 Scrollable2.ensureVisible for box-based viewports (#7868)
This patch makes Scrollable2.ensureVisible with SingleChildScrollView. A future
patch will extend the implementation to work with slivers. (Although the patch
does include some of the infrastructure for that part of the implementation as
well.)
2017-02-03 16:04:41 -08:00