646 Commits

Author SHA1 Message Date
Adam Barth
2bb94ec98a Remove most remaining ScrollableList clients (#8048) 2017-02-09 23:41:14 -08:00
Ian Hickson
473b67ef19 Trivial style nits (#8042) 2017-02-09 15:31:21 -08:00
Alexandre Ardhuin
00cbdb3800 prefer const constructor (#8031) 2017-02-09 15:18:49 -08:00
Adam Barth
c9e4541c02 Port LazyBlock tests to ListView (#8026) 2017-02-09 10:35:24 -08:00
Adam Barth
1a61a76e21 Port scrollable_lazy_list_test.dart to ListView (#8025)
We call the builder in slightly different ways, but the new results
seem reasonable.
2017-02-09 10:05:00 -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
Alexandre Ardhuin
d1d1c50cbe prefer const constructors (#8024) 2017-02-09 00:57:38 -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
Ian Hickson
ba9d5e9248 Add tests for Baseline. (#8021) 2017-02-08 21:43:22 -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
Adam Barth
4e95701541 Switch TabBarView to PageView (#7982)
Tabs are now fully driven by slivers.
2017-02-08 14:55:18 -08:00
Chris Bracken
ecdf99c326 Revert "Make the text shorter so that it doesn't overflow (#7970)" (#7984)
This reverts commit ea21d0c542d05a7738a8357db48fe9490c25c621 which
didn't resolve the pagination control overflow issue. Commit
7425940d5be153430f98aa5b0735545f4a4fc3e5 replaces this as an alternate
workaround. Once flutter/flutter#7980 is resolved, we should revert
7425940d5be153430f98aa5b0735545f4a4fc3e5 and scroll instead.
2017-02-08 13:10:01 -08:00
Chris Bracken
7425940d5b Prevent overflow of pagination bar with Ahem font (#7977)
Once engine commit d49a6b110bced49fa318b0dd45bf409218df9ee5 rolls into
Flutter rolls in, we get correct font metrics for the Ahem font, used in
headless sky_shell test runs. Ahem has much wider glyphs than the system
font, which causes the PaginatedDataTable bottom bar to be much wider
and overflow the previous and next controls offscreen.

This commit reduces the number of rows such that the prev/next controls
are still just barely onscreen.
2017-02-08 12:29:15 -08:00
Ian Hickson
ea21d0c542 Make the text shorter so that it doesn't overflow (#7970)
The Ahem font has a much wider average text width than most fonts.
2017-02-08 10:44:54 -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
af587a154f Support for tests that respond to text input (#7915) 2017-02-07 14:54:18 -08:00
Hans Muller
c08bac8335 Form needs to clean up its scopedWillPopCallback (#7936) 2017-02-07 14:49:15 -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
Michael Goderbauer
9014280f7b Skip TextPainter caret test (#7912)
Reason: https://github.com/flutter/flutter/issues/4273
2017-02-06 16:53:52 -08:00
Ian Hickson
524058f53a The tests should not be platform-specific (#7911) 2017-02-06 16:32: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
Ian Hickson
b6aec82e1b AppBar -> PersistentHeader (#7899) 2017-02-06 10:29:26 -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
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
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
Jason Simmons
883bae074a Roll engine (#7862) 2017-02-03 14:39:16 -08:00
Adam Barth
072cce88d6 Reparameterize Scrollable2 (#7853)
This patch makes a number of changes to how you can configure a
Scrollable2:

 - The ScrollPhysics is now responsible for creating the ScrollPosition.
   You can override the ScrollPhysics by supplying a `physics` argument
   to `Scrollable`, and the new physics you supply will be applied to
   the default physics inherited from the ScrollBehavior.

 - This patch removes the ScrollPosition/AbsoluteScrollPosition split as
   all clients were operating in pixels anyway and the split made the
   code very difficult to follow.

 - ScrollPosition no longer depends directly on Scrollable2State.
   Instead, it depends on an abstract interface that Scrollable2State
   implements. This change has two benefits:

    a) It removes the circular dependency between ScrollPosition and
       Scrollable2State, which lets us split the code for these classes
       (and several other classes that got wrapped up in that cycle) into
       separate libraries for easier maintenance.

    b) ScrollPosition is no longer bound to Scrollable2, which means you
       could use the behavior machinery to drive other sorts of widgets.
       For example, we could use it to drive Scrollabe1 if we wanted.
2017-02-03 14:28:17 -08:00
xster
475e7ce97d Optional general date predicate mechanism (#7858) 2017-02-03 14:27:38 -08:00
Ian Hickson
be7be2b8b6 Test service extensions (#7849)
...and fix bugs that the tests uncovered.

WRITE TEST FIND BUG
2017-02-03 13:55:07 -08:00
Adam Barth
2ec02c3395 Remove Scrollable2.initialScrollOffset (#7842)
This property is wired up to anything and it isn't used. We'll need to find a
better way for clients to control the scroll offset.
2017-02-03 11:18:47 -08:00
Adam Barth
3231465769 Add PageView (#7809)
This widget is a start towards replacing PageableList. There are still a number
of features that we'll need to add before this widget can replace PageableList.
2017-02-02 16:16:20 -08:00
Ian Hickson
cedc74503a Add a flag that shows a banner for old Scrollables (#7819)
Also, tweak Banner a bit so you can set the color and text style.
Also, cache the text painter between paints.
2017-02-02 14:52:49 -08:00
Ian Hickson
5928d221d4 ShrinkWrap Viewport (#7790) 2017-02-02 14:50:04 -08:00
xster
959db13c04 Prevent out of bound date picker selections (#7773)
- Out of bound days are disabled and untappable
- Out of bounds months can't be navigated to
2017-02-02 11:30:32 -08:00
Mikkel Nygaard Ravn
f460309354 Added Widgets that interact with asynchronous computations (#7733)
Added three widgets that interact with Futures and Streams.
2017-02-02 08:35:36 +01:00
Ian Hickson
5f38773ed0 Screenshot improvements (#7800)
Add an "s" command to `flutter run` which takes a screenshot.
Make that comment turn off the slow mode banner.
2017-02-01 22:47:53 -08:00
Adam Barth
b082b93a3f Simplify AbsoluteScrollPosition class structure (#7785)
Instead of using mixins and subclasses, we now use a `ScrollPhysics` delegate
to customize the scrolling phyics for Android and iOS. This change will make it
easier to customize the scroll position for paging.
2017-02-01 15:48:24 -08:00
Adam Barth
fe01c71cf4 Switch clients to ScrollGrid (#7752)
The only remaining client of ScrollableGrid (the old version) is Pesto,
which needs AppBar integration.
2017-02-01 11:01:02 -08:00
Adam Barth
41f1f8a489 Add SliverFill (#7776)
SliverFill fills the remaining space in the viewport with each box
child. We'll use this sliver as a building block for pageable lists.
2017-02-01 10:49:43 -08:00
Adam Barth
695302029f Revert "Revert "Add SliverGrid and ScrollGrid"" (#7780) 2017-02-01 10:18:48 -08:00
Adam Barth
3a43fc88b6 Remove extraneous uses of scrollableKey from tests (#7775)
This patch removes unnecessary uses of scrollableKey from tests.
Scrollable2 will likely use a different mechanism for identifying
itself, so we want to focus on the uses of scrollableKey that will need
to be addressed in the new implementation.
2017-01-31 23:32:10 -08:00