Commit Graph

258 Commits

Author SHA1 Message Date
xster
feadfd2e40
Cupertino pull to refresh part 1: sliver and a simple indicator widget builder (#15324)
* Gallery scaffolding

* Started RenderSliver

* demo and initial hookup

* Cleaned up demo more and scaffolding basic sliver->widget communication structure.

* works

* states and default indicator building works

* start adding docs

* added an alignment setting optimized the sliver relayout mechanism

* tested a default bottom aligned sized indicator

* Added a bunch of tests

* more fixes and more tests

* Finished the tests

* Add docs

* Add more doc diffing wrt material pull to refresh

* Mention nav bar synergy

* add more asserts

* review 1

* Fix mockito 2 / dart 2 / strong typed tests

* review

* Remove the vscode config

* review
2018-03-21 17:27:58 -07:00
xster
1eaf85036f
Update gallery drawer version (#15774) 2018-03-21 13:51:10 -07:00
xster
33fea5c19a
Remove the 'demo' wording from gallery (#15640) 2018-03-19 17:03:56 -07:00
Hans Muller
c599662903
Added a Backdrop demo to the Gallery (#15579) 2018-03-15 17:52:09 -07:00
David Shuckerow
dd0acea1ec
Add support for placing the FAB in different positions (#14368)
* Add support to move the fab between positions.

* Motion demo for the FAB works between center and end floating.

* Add a Material curve to the offset animation.

* Move the fab position into an object

* Updates to docs

* Updates to docs

* Fix a lint on the bottom sheet type

* Add a ScaffoldGeometry class

* Improve the documentation

* Improve the documentation

* Add a fab motion animator

* Add position and scale animations

* FAB entrance and motion animations work

* Get started on FAB motion

* Make fab animation work properly.

* Change the fab animator to be stored in the state of the scaffold.

* Add a layout test

* Fix spacing being off

* Fix the entrance/exit animation test.

* Add a textDirection to the layout delegate.

* Fix const constructor lint checks

* Add toStrings for the fab positioner/animator

* Add a toString for CurveTween

* Change the fab motion demo icon to a simple add icon.

* Add tests and a custom fab positioner to the demo.

* Do not start the fab's motion animation when the fab is null.

* Adjust the code to pass the new tests.

* Rename for in response to Hans' comment.

* Revert the tabs fab demo

* Use timeDilation, and clean up the animation code a little.

* Clean up the prelayout geometry docs and ctr order

* Cleanup fab transition widget code

* Clean up comments on Scaffold, add cross-references between the two geometries

* Explain the fab motion animation scheduling better

* Add a const to the fab motion demo

* Make the fab animation never jank by keeping track of where to move the fab to in the future.

* Add a default fab positioner constant

* Add space after comma in the demo

* Add boilerplate dartdoc to all const constructors

* Comment improvement

* Rename 'fabSize' to 'floatingActionButtonSize'

* Rename 'fabSize' to 'floatingActionButtonSize'

* Rename 'fabSize' to 'floatingActionButtonSize'

* Clean up the prelayout geometry object's dartdoc

* Clean up the prelayout geometry object's dartdoc

* Remove extraneous comment

* Change possessive uses of Scaffold's to use dartdoc-compatible [Scaffold]'s

* Rename the horizontalFabPadding to an expansion

* Clean up controller cleanup and setState usage

* Animate instead of lerp

* Make the fab position animation use offsets instead of animations

* Streamline the fab motion demo

* Set up the animator to start from a reasonable place when interrupting animations.

* Doc cleanup on the new animation interruption

* Expand some uses of fab and clean up constants

* Expand remaining public uses of fab to floating action button

* Expand remaining public uses of fab to floating action button

* Expand on the documentation for the fab positioner and animator

* Refactor animations to broadcast the position properly.

* Add the ability to turn on and off the fab to the motion demo.

* Remove unused code

* Change the fab animator to animate even when the fab is exitting.

* Remove extra positioner.

* Apps -> Applications in docs

* Explain the scale animation.

* Name the child parameter in the animated builder

* RTL before LTR

* Wrap the AppBar in the example code

* const the fab motion demo name

* Start a test against animation jumps

* Test for jumps in the fab motion animation

* Dont initialize values to null

* Use constants, fix spacing from some of Hans' comments

* Clarify the relationship between fab positioners and prelayout geometries

* Explain the fab animmator a bit better

* Explain the animation progress in the fab animation

* Explain the animation restart better

* Explain the animation restart better

* Explain the prelayout geometry better

* Explain that height is a vertical distance.

* Explain the horizontal fab padding

* Update the scaffold size description to explain what happens when a wild keyboard appears

* Remove print statements

* Update the scaffold geometry with information about it being available at paint time.

* In one step of a transition

* Explain how the top-start fab positioner works

* Explain how the top-start fab positioner works

* Refactor the scaffold layout to just pass a padding instead of a bottom, top, start and end.

* Refactor the scaffold layout to just pass a padding instead of a bottom, top, start and end.

* Action buttons with with custom positioners.

* Add a rotation animation example.

* Use a swap animation to show swapping between two different animations.

* Use a swap animation to show swapping between two different animations.

* Add an example for the size animations.

* 2018 copyright

* Extra empty line

* Return new Scaffold

* Extra blank line fix

* All its contents have been laid out

* Position the fab

* Explain what the scaffold geometry is for.

* Move asserts to different lines

* The scaffoldsize will not

* Initial rename of FabPositioners to FloatingActionButtonLocation

* Rename comments in example to refer to location instead of positioner.

* Rename fabpositioner to location in tests and in the scaffold field

* Finish removing references to positioner in scaffold code.

* Split the fab location and animation out into a separate file.

* Make things more private

* Import foundation instead of meta

* Const curve instead of final.
2018-03-15 17:04:24 -07:00
Hans Muller
4c7cc73637
Added an additional Material theme to the Gallery (#15492) 2018-03-14 10:52:06 -07:00
Jonah Williams
231170a7c5
Replace child parameter with builder on showDialog (#15303)
* replace child parameter with builder on showDialog

* change builder parameter to WidgetBuilder

* mark child as deprecated and expand documentation to cover this and how builder should be used

* tidy comments and address some feedback

* phrasing

* move space to prev line and add //ignore comments for deprecated member use

* address comments and fix it's its

* update code samples

* adds semicolon to code snippets
2018-03-14 10:40:24 -07:00
Hans Muller
11d81b11d7
Add OutlineButton, Tristate Checkbox to Flutter Gallery (#15312) 2018-03-12 10:21:14 -07:00
Michael Goderbauer
3a40d0ee4e
Support SemanticsFlag for Header (#15255) 2018-03-09 13:32:01 -08:00
Todd Volkert
d996ab921c
Rename "slow mode" to be "debug mode" (#15205)
This moves toward more consistency in our messaging. Apps are
launched using --debug, so the banner will reflect the build
mode.
2018-03-08 12:54:06 -08:00
Josh Soref
c5a5945e92 Spelling (#15229)
* spelling: accommodate

* spelling: allotted

* spelling: anonymous

* spelling: artificial

* spelling: associated

* spelling: asset

* spelling: button

* spelling: canvas

* spelling: compatibility

* spelling: coverage

* spelling: condition

* spelling: decoration

* spelling: deferring

* spelling: diameter

* spelling: direction

* spelling: displacement

* spelling: dropdown

* spelling: needing

* spelling: environment

* spelling: exited

* spelling: expansion

* spelling: explore

* spelling: families

* spelling: horizontal

* spelling: increment

* spelling: indices

* spelling: internationalization

* spelling: labrador

* spelling: localizations

* spelling: midflight

* spelling: milliseconds

* spelling: minimum

* spelling: multiple

* spelling: multiplication

* spelling: navigator

* spelling: overridden

* spelling: package

* spelling: performance

* spelling: platform

* spelling: porsche

* spelling: position

* spelling: preceded

* spelling: precede

* spelling: precedence

* spelling: print

* spelling: property

* spelling: readily

* spelling: reproducibility

* spelling: rounded

* spelling: scroll

* spelling: separate

* spelling: separator

* spelling: services

* spelling: specific

* spelling: specify

* spelling: synchronously

* spelling: through

* spelling: timeout

* spelling: triangle

* spelling: trivial

* spelling: unusual

* spelling: then

* spelling: vertically

* spelling: visible

* spelling: visited

* spelling: voice
2018-03-06 21:36:03 -08:00
Danny Tuppeny
ae9fdefa4f
Fix example code just showing endless spinner when deployed from Windows (#14878)
* If example code is not found, render a message instead of an endless spinner
* Trim codeTags to avoid lookup issues with windows carriage returns
* Trim \r on Windows off the end of code blocks so they're consistently \n
* Add a test to ensure sample code parses if built on Windows
* Add a comment about why we trimRight()

Fixes #14820.
2018-02-28 20:39:48 +00:00
Alexandre Ardhuin
c02b6a8bcf
some whitespace cleanup (#14443) 2018-02-02 23:27:29 +01:00
Ian Hickson
c12d120bbf
Provide a way to override global InheritedWidgets (#14348)
For example, so that the gallery can override the media query globally.
2018-02-01 23:12:52 -08:00
Michael Goderbauer
b54b576c1a
Assorted a11y fixes (#14395) 2018-01-31 15:23:20 -08:00
xster
667f478506
CupertinoPicker part 4 - create CupertinoPicker and add gallery demo (#14091)
* controller, position and test

* Make controllers swappable

* WIP

* Create a ListWheelScrollPhysics

* Created picker and gallery demo and testing now

* Works. Ready to document and test.

* Document and add tests. Make the scroll controller more generic.

* minor cleanup

* review

* review

* fix tests

* stop using TransformLayers for now
2018-01-25 16:31:43 -08:00
Leaf Petersen
b3cfa785c4
Uncontroversial and backwards compatible 2.0 SDK fixes (#13723)
Small code changes as part of moving the framework SDK forward to a 2.0 dev version.
2017-12-21 13:39:03 -08:00
Ian Hickson
78ff7707e1
Fix niggling PaginatedDataTable bugs (#13556)
Prevent header from thinking it can wrap and then overflowing.

Fix default footer string which lost its colon (localized values are fine).

Make the "rows per page" drop-down include at least one value even when the table lacks many items. (Previously it would assert if your table was too short.)

Make the footer scrollable.

Fix some todos and improve some debug output.

Tests for much of the above.
2017-12-19 12:39:48 -08:00
Chris Bracken
d8bfb3a99b
Apply media padding to Gallery Material Design demos (#13593)
Applies media padding (e.g. iPhone X safe area insets) to the Material Design demos in the Gallery.

Covers the following demos:
* Buttons (via the TabbedComponentDemoScaffold change)
* Cards
* Expansion panels
* Grid list
* Icons
* Images (via the TabbedComponentDemoScaffold change)
* Page Selector
* Progress Indicator
* Scrollable tabs
* Selection controls (via the TabbedComponentDemoScaffold change)
* Snack bar
* Tabs
* Text fields
* Tooltips

Fixes #13594
2017-12-15 10:13:30 -08:00
Chris Bracken
20fb6621eb
Apply media padding in ListTile (#13545)
Applies media padding (e.g. iOS safe area insets) around the list tile
children inside the InkWell.

Also adds safe area around gallery section titles for consistency with
surrounding list tiles.
2017-12-13 18:39:36 -08:00
Sigurd Meldgaard
3a393249dc Gallery video demo (#13195) 2017-12-01 18:28:36 +01:00
amirh
47b5c37f1a
Add Images demo to the gallery app. (#13141) 2017-11-28 18:17:11 -08:00
Ian Hickson
8b15b537b3
DropdownButton RTL (#13040)
This fixes DropdownButtons to align their popups correctly in RTL as well.

Also while I was there I fixed the issue with text scale factor in the gallery.
2017-11-16 17:57:50 -08:00
Ian Hickson
c97fc2063f
ExpansionPanel animation fixes (#13032)
Previously, ExpansionPanel would do weird things if interacted with
when it was already animating. This is fixed and there's now a test.

Also:

 * Minor fixes to make the gallery work in RTL, not that there's
   any way to see that without hard-coding the framework to RTL.
   But at least I'll be less annoyed when doing that.

 * Some trivial code and documentation cleanup.
2017-11-16 10:22:50 -08:00
xster
89405002bc
Add an iOS style demo to the gallery (#12651)
* Built first tab

* Small additions

* started tab 3

* Need color arithmetics

* tab 2 built

* finalize

* lint and tests

* review

* Reapply docs after rebase

* use color.computeLuminance

* linter

* nit
2017-11-03 08:50:29 -07:00
Chris Bracken
d69fcea1a8 Use Mountain View/Cupertino terms in drawer on iOS (#12699)
Use our platform identifiers rather than OS names for the platform
switcher radio buttons in the drawer as noted in section 2.3.10 of the
App Store review guidelines.

See: https://developer.apple.com/app-store/review/guidelines/
2017-10-24 18:11:10 -07:00
Alexandre Ardhuin
1fce14a31c enable lint prefer_single_quotes (#12665) 2017-10-22 18:11:36 +02:00
Michael Goderbauer
f8a2bd20e9 Redesign Semantic Tree Compilation Algorithm (#12605)
* Oct 12 10:12am

* implicit_semantics_test.dart passes

* refactoring

* works in nice

* minor rename

* more doc comments

* to be explicit check better

* fix test

* ++

* ++

* semantics_9_test (BlockSemantics) and implicit_semantics_test are passing

* doc updates

* tiny refactor

* fix static errors in tests

* fix gesture detector

* ++

* ++

* geometry

* ++

* remove noGeometry

* revert test

* +

* all tests but scrolling/clipping pass

* clipping works

* scrolling halfway

* sliver tests pass

* ALL TESTS PASS

* SemanticsNode changed

* docs and tiny fixes

* card test

* more doc comments

* remove missed print

* more tests

* make test pass on Linux

* remove changes to intellij proj file

* review comments
2017-10-18 16:28:24 -07:00
Greg Spencer
e697e5523f Add large text switching to Gallery app. (#12443)
This lets us preview widgets in the gallery using small, normal, large, and HUGE text.

Added selections to the main drawer for these options. Defaults to "normal", obviously.
2017-10-13 21:44:24 -07:00
Adam Barth
0044ea2dbb Replace usage of FractionalOffset with Alignment (#12348)
Alignment will eventually replace FractionalOffset.
2017-10-02 00:06:24 -07:00
Ian Hickson
efb45ea788 Trivial nit fixes (#12285) 2017-09-27 16:13:48 -07:00
Sarah Zakarias
a0e91bf9e8 Update Flutter Gallery to use new asset api for package assets (#12254) 2017-09-26 15:21:01 +02:00
Alexandre Ardhuin
2958d7d0fc use bool in assert (#12170) 2017-09-21 09:33:01 +02:00
Adam Barth
1792766a88 Rename BannerLocation enum values (#11960)
* Rename BannerLocation enum values

 * topLeft -> topStart
 * topRight -> topEnd
 * bottomLeft -> bottomStart
 * bottomRight -> bottomEnd

These names will make it easier for us to adjust the location of the
banner in right-to-left mode.

See the discussion on flutter-dev.

* Add RTL support for Banner

Fixes #11905
2017-09-07 21:12:28 -07:00
Michael Goderbauer
6ac0f61234 Gallery: remove unused code and a11y fix (#11209) 2017-07-14 14:44:11 -07:00
Michael Goderbauer
cb35a1c728 Tiny a11y fix for Gallery (#11187) 2017-07-13 09:50:37 -07:00
Ian Hickson
a9f1cb8c0a More documentation (#10606)
- How do you handle a tap on text?
- Why is AnimatedOpacity expensive?
- Why would you use a gesture arena team?
...and other minor fixes
2017-06-12 16:53:01 -07:00
Alexandre Ardhuin
1eaefe1837 more const for immutables (#10563) 2017-06-08 22:04:18 +02:00
Alexandre Ardhuin
7d71326363 apply prefer_asserts_in_initializer_list lint (#10540) 2017-06-07 21:39:47 +02:00
Ian Hickson
cd6e3b1ac2 CheckboxListTile, RadioListTile, SwitchListTile (#10160) 2017-05-19 08:46:17 -07:00
Jason Simmons
e65d47d4ba Update Gallery primary swatch colors in order to select the intended text color (#10090) 2017-05-15 12:40:20 -07:00
Jason Simmons
91b1a07656 Framework support for checkerboardOffscreenLayers (#10054)
See https://github.com/flutter/flutter/issues/9473
2017-05-12 14:41:07 -07:00
Sarah Zakarias
ee6cd679c8 More use of url_launcher plugin in Flutter Gallery (#9836) 2017-05-09 15:05:23 +02:00
Sarah Zakarias
2dd26a93a5 Revert "Revert plugin use in gallery (#9838)" (#9913)
This reverts commit 4bbf158b6a.
2017-05-09 11:49:03 +02:00
Ian Hickson
a5894fca82 Revert "Revert "Revert plugin use in gallery (#9838)"" (#9883)
* Revert "Update reference to url_launcher plugin in Gallery pubspec (#9879)"

This reverts commit 96a04dea0d.

* Revert "Revert "Revert plugin use in gallery (#9838)" (#9877)"

This reverts commit ede72a8043.
2017-05-08 09:42:23 -07:00
Sarah Zakarias
ede72a8043 Revert "Revert plugin use in gallery (#9838)" (#9877)
This reverts commit 4bbf158b6a.
2017-05-08 13:32:41 +02:00
Sarah Zakarias
4bbf158b6a Revert plugin use in gallery (#9838)
* Revert "add Podfile (#9835)"

This reverts commit 74e656752c.

* Revert "update ref to url_launcher plugin in Flutter Gallery (#9833)"

This reverts commit 30c49781c5.

* Revert "Use url_launcher plugin in Flutter Gallery (#9751)"

This reverts commit 02dfd6be53.
2017-05-05 14:14:33 +02:00
Sarah Zakarias
02dfd6be53 Use url_launcher plugin in Flutter Gallery (#9751) 2017-05-05 10:48:46 +02:00
Ian Hickson
89856c0e5b Adjust the defaults behaviour of scroll views. (#9679)
* Adjust the defaults behaviour of scroll views.

Now, primary scroll views scroll by default. Others only scroll if necessary.

* apply suggested changes
2017-05-02 09:14:50 -07:00
Jason Simmons
a4992f0eac Fix the sizing of the stack containing the Gallery preview banner (#9657) 2017-04-27 15:16:05 -07:00
Alexandre Ardhuin
83fce211a3 More const immutable classes (#9544)
* more widget const constructors

* prefer const constructors

* address review comments
2017-04-23 22:37:29 +02:00
Adam Barth
0d0861b3ee The const will continue until morale improves (#9536) 2017-04-21 14:59:24 -07:00
Alexandre Ardhuin
9541848272 make @immutable const classes (#9532)
* make @immutable const

* fix build
2017-04-21 23:09:42 +02:00
Alexandre Ardhuin
03c54abd5f make some widgets const (#9477) 2017-04-20 08:59:05 +02:00
Hans Muller
d9cd85e3ef Remove the pesto gallery demo (#9341) 2017-04-12 14:41:03 -07:00
xster
89a7fdfc56 Rename State.config to widget everywhere (#9273)
Rename State.config to State.widget
Rename State.didUpdateConfig to State.didUpdateWidget
Renamed all State subclasses' local variables named config to something else
2017-04-10 18:32:24 -07:00
Ian Hickson
2a5810e36f Point from gallery's routing table to stocks'. (#9287)
The stocks routing table is a clearer example of how to do this.
People know to look at the gallery, but don't think to look at the
stocks version. This points them from the former to the latter.
2017-04-07 17:51:41 -07:00
Alexandre Ardhuin
8bcf302e23 use conditional assignment (#9252) 2017-04-07 21:41:17 +02:00
Ian Hickson
3eb87830e9 Constants! Constants everywhere! (#9286)
Aggressively apply the const lint.
2017-04-07 12:24:32 -07:00
Jason Simmons
bb0adcb873 Update version strings in Gallery (#9263)
Fixes https://github.com/flutter/flutter/issues/9259
2017-04-06 13:11:20 -07:00
Adam Barth
ae8994860e Rationalize text input widgets (#9119)
After this patch, there are three major text input widgets:

 * EditableText. This widget is a low-level editing control that
   interacts with the IME and displays a blinking cursor.

 * TextField. This widget is a Material Design text field, with all the
   bells and whistles. It is highly configurable and can be reduced down
   to a fairly simple control by setting its `decoration` property to
   null.

 * TextFormField. This widget is a FormField that wraps a TextField.

This patch also replaces the InputValue data model for these widgets
with a Listenable TextEditingController, which is much more flexible.

Fixes #7031
2017-04-01 17:30:21 -07:00
Alexandre Ardhuin
2de61a0853 add @required when there's an assert not null (#9124)
* add @required when there's an assert not null

* address review comments
2017-03-31 18:34:13 +02:00
Hans Muller
606f56221b Eliminated DrawerItem, use ListTile instead (#8992) 2017-03-24 15:34:43 -07:00
Alexandre Ardhuin
578ca0a295 use color.shadeXxx instead of color[Xxx] (#8932)
* use color.shadeXxx instead of color[Xxx]

* remove calls to .shade500 on MaterialColor

* remove calls to .shade200 on MaterialAccentColor

* fix test
2017-03-21 23:14:55 +01:00
Hans Muller
031e042eee Now each Colors.foo constant is-a Color and a color swatch (#8833) 2017-03-17 15:24:54 -07:00
Adam Barth
5cf04b6141 Rename ImageFit to BoxFit (#8871)
This machinery is useful for arbitrary boxes (e.g., with FittedBox).

Fixes #6463
2017-03-17 15:21:55 -07:00
Hans Muller
859da8d28b Rename ListItem to ListTile, document ListTile fixed height geometry (#8769) 2017-03-14 11:46:30 -07:00
Adam Barth
6b75ac3fde Rename dependenciesChanged to didChangeDependencies (#8767)
The new name matches the style guide. (The old name was just old and predated
the style guide.)

Fixes #8000
2017-03-14 11:21:53 -07:00
Chris Bracken
96eea437b2 Declare locals final where not reassigned (gallery) (#8571) 2017-03-03 17:51:21 -08:00
Hans Muller
54d9541638 Added a gallery animation demo (#8547) 2017-03-03 11:38:19 -08:00
Alexandre Ardhuin
69b6bb87d1 prefer_is_empty and prefer_is_not_empty (#8474) 2017-03-01 22:17:30 -08:00
xster
a76c352d57 Add Cupertino to gallery and add CupertinoButton and many yak friends (#8411)
* Add cupertino to gallery and add CupertinoButto

* Use single quotes

* Add disabled state

* Some review notes

* Make button animation more responsive and tweak timing

* Renamed things Cupertino

* Button with background, move cupertino demos, move material demos

* Move 2 level list too

* Refactor various demo route names

* Some review notes

* More reviews and add test

* Linter as

* Move private constant up
2017-03-01 16:06:48 -08:00
Alexandre Ardhuin
8c043d06de fix lints for directives_ordering rule (#8382) 2017-02-23 13:37:26 -08:00
Alexandre Ardhuin
e9a775bf38 prefer const constructors (#8316) 2017-02-21 14:54:29 -08:00
Ian Hickson
f9c2d7d9aa Introduce a quick way to test across platforms (#8262) 2017-02-17 17:47:49 -08:00
Ian Hickson
1bd7dbc2ec Rename "Over-scroll" demo to "Pull to refresh" (#8224)
Fixes https://github.com/flutter/flutter/issues/5935
2017-02-16 17:14:01 -08:00
Adam Barth
14743566ca Migrate Dropdown to ScrollConfiguration2 (#8135)
Also use the word "dropdown" consistently over "drop down".
2017-02-14 14:06:59 -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
Adam Barth
1ec625ffad Remove PageableList (#7997)
All clients have moved to PageView.
2017-02-08 15:50:30 -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
Ian Hickson
6dcd127188 Delay time dilation so users see the checkbox (#7803)
Fixes https://github.com/flutter/flutter/issues/5066
2017-02-01 22:48:00 -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
a4eca31777 Use ScrollView in examples a manual_tests (#7645)
This patch deploys ScrollView in a number of demos and manual tests.
2017-01-25 21:59:03 -08:00
Adam Barth
559621ca5a Add SingleChildScrollView (#7620)
This widget is a replacement for ScrollableViewport that uses the new
Scrollable2 machinery. The widget is not based on Slivers but does use the new
scroll behavior classes.
2017-01-24 15:16:01 -08:00
Ian Hickson
63aa1397a3 Increase the strictness of our requiring explicit types (#7585)
...now that we have generic methods, their types need to be specified too.
2017-01-23 01:04:31 -08:00
Hans Muller
b23aed7a86 New Tabs API (#7387) 2017-01-09 14:55:36 -08:00
Hans Muller
d05c7f62f2 UserAccountsDrawerHeader gallery demo, etc (#7297) 2016-12-21 06:19:42 -08:00
Collin Jackson
f0c7f5a942 Support for overriding Gallery feedback menu item behavior (#7091) 2016-11-29 17:47:39 -08:00
Hans Muller
2398cd9acc Remove extraneous gallery demo imports (#7002) 2016-11-23 11:08:06 -08:00
Adam Barth
8ca4caa440 Rename Flexible to Expanded and improve docs (#6978)
This patch replaces uses of Flexible with Expanded where we're using
FlexFit.tight. We still need to think of a better name for the
FlexFit.loose variant.

Also, improve the docs for Row, Column, Flex, and RenderFlex to be more
problem-oriented and to give a complete account of the layout algorithn.

Fixes #6960
Fixes #5169
2016-11-21 23:16:43 -08:00
Hans Muller
39872e7df1 Combine date and time picker demos (#6933) 2016-11-21 11:49:35 -08:00
Ian Hickson
9c1a24fa72 Reexport meta from foundation. (#6938) 2016-11-18 21:22:32 -08:00
Chinmay Garde
1939ba12d2 Wire up checkerboarding of raster cache images in the framework and gallery. (#6749) 2016-11-09 11:36:17 -08:00
Jason Simmons
46b60773e8 Update Gallery usage of Scaffold.of (#6639) 2016-11-03 17:26:36 -07:00
Ian Hickson
cfddacbb81 Platform selector in gallery. (#6390) 2016-10-18 22:44:43 -04:00
Hans Muller
66127250c9 Fix Gallery example code display initialization (#6176) 2016-10-03 12:00:01 -07:00
Adam Barth
8a823328ca Make animation_demo a manual test (#6117)
This demo doesn't work properly in landscape and is confusing. It's
really more of a test of the material arc code.

Fixes #5710
2016-09-29 08:59:43 -07:00
Adam Barth
6469872abd Rename Container.align to alignment (#6116)
To match the Align widget (and several other widgets).

Fixes #6101
2016-09-28 11:17:04 -07:00
Adam Barth
dc4a1638ee Specialize AlertDialog and SimpleDialog (#6098)
We were trying to cram too much functionality in to the Dialog widget. Now we
have AlertDialog and SimpleDialog to cover to two different kinds of dialogs in
the spec.
2016-09-27 15:44:11 -07:00
Ian Hickson
9e673853e5 Turn off AnimationControllers when not in use (#5902)
This requires all AnimationController objects to be given a
TickerProvider, a class that can create the Ticker.

It also provides some nice mixins for people who want to have their
State provide a TickerProvider. And a schedulerTickerProvider for those
cases where you just want to see your battery burn.

Also, we now enforce destruction order for elements.
2016-09-26 10:57:10 -07:00
Dragoș Tiselice
ef68f2f03b Added BottomNavigationBar demo. (#6003)
Added a demo of BottomNavigation to the Gallery.
2016-09-23 14:46:30 -07:00
Dragoș Tiselice
87fb075fa1 Renamed DropDown to Dropdown. (#5897)
Fixes #3208.
2016-09-15 17:38:41 -07:00
Seth Ladd
85ac22e4e2 turn verbs into nouns for gallery homepage (#5801)
* turn verbs into nouns for gallery homepage

* shorter is better
2016-09-09 16:36:52 -07:00
Seth Ladd
9e808aad7e Change from plural to singular (#5705)
Closes #5702

Update transitions_perf_test.dart

Update simple_smoke_test.dart
2016-09-02 09:14:06 -07:00
Dragoș Tiselice
8fed9d9e16 Added expansion panels demo to gallery. (#5539) 2016-09-01 15:36:26 -07:00
Dragoș Tiselice
50ead56e0e Made all drawer items actionable. (#5688)
One of the drawer items was dsiabled but still clickable which
led to inconsistent icon coloring. THis commit makes this item
actionable. Fixes #5683.
2016-08-31 15:46:39 -07:00
Hans Muller
119758b822 Make the suspended gallery task bar gray (#5651) 2016-08-29 14:59:10 -07:00
Hans Muller
a651008acf Animate the "PREVIEW" banner into view (#5598) 2016-08-25 12:30:25 -07:00
Collin Jackson
91b6319a4f Allow disabling the performance overlay in main.dart, fixes #5580 (#5583) 2016-08-24 15:55:00 -07:00
Collin Jackson
701e0d054a Add update dialog to gallery (#5569)
Add update dialog to gallery, open source part of #4626
2016-08-24 13:32:27 -07:00
Hans Muller
3a6f6c8275 Gallery app preview banner (#5554) 2016-08-23 12:29:07 -07:00
Hans Muller
cc600fc0a0 Add a gallery feedback link (#5511) 2016-08-22 09:57:25 -07:00
Hans Muller
e683cb2157 Gallery home page header color should track the material theme (#5486) 2016-08-18 14:15:33 -07:00
Hans Muller
7b2f660417 Stablize gallery status bar height computation (#5485) 2016-08-18 12:41:51 -07:00
Hans Muller
082730e94b Tapping status bar scrolls to top on IOS (#5425) 2016-08-16 12:30:39 -07:00
Ian Hickson
0d7363322f Fix the logo widget (#5414)
Some tweaks to the logo widget:

* remove bad assert
* allow text color to be configured
* make logo pretty in dark mode in gallery
* fix some docs
2016-08-15 16:02:53 -07:00
Ian Hickson
955b3e21f7 A Flutter logo widget. (#5382)
Instead of a PNG, the Flutter gallery widget is now drawn in code.

There's now a FlutterLogoDecoration class that paints the flutter logo
anywhere you can use a Decoration (e.g. AnimatedContainer).

There's now a FlutterLogo class that honors the IconTheme.

The About dialog box API now takes a Widget for the applicationIcon,
instead of an ImageProvider. It uses IconTheme to make the icon the
right size instead of using an Image widget.

Add padding, duration, and curve properties to the DrawerHeader.
Make the child of a DrawerHeader optional.

Clean up UserAccuntsDrawerHeader a bit.

Add some useful properties and methods to EdgeInsets.

Add some debug logic to RenderDecoratedBox to catch unpaired
save/restore calls when possible.

Make GestureDetector fill its parent if it has no children. Fixes
https://github.com/flutter/flutter/issues/5380
2016-08-15 12:50:24 -07:00
Hans Muller
914f3adc6e Update gallery application version and label 2016-08-12 11:19:44 -07:00
Adam Barth
d321ce352e Disable parallax in gallery home header (#5250)
We don't yet know how to do this without poping during hero animations.
2016-08-05 09:59:17 -07:00
Adam Barth
4cc094ac9f Remove pop in AppBar hero animations (#5243)
Now the flexible space bar computes its effect from its size rather than from
the Scaffold's animation.
2016-08-05 09:30:45 -07:00
Hans Muller
3a7508d702 New gallery identity (#5210) 2016-08-04 11:07:59 -07:00
Adam Barth
c674b4a803 Rename Image.fromNetwork and Image.fromAssetBundle (#5149)
These now have sorter names to make the callers less verbose.
2016-07-29 13:28:08 -07:00
Adam Barth
79364f0a06 Add Container.align and Container.position (#5128)
These let you add Align widget to the inside or outside of a container.
Several customers have asked for these properties.

Fixes #4950
2016-07-29 10:27:11 -07:00
Adam Barth
534097ffb6 Use named Image constructors (#5129)
Some folks didn't realize these existed and asked us to add them. By
using them in examples, hopefully folks will discover them more easily.
2016-07-29 08:27:28 -07:00
Hans Muller
578d98ea46 Gallery demo tweaks (#5116) 2016-07-28 12:35:26 -07:00
Hans Muller
0265dd3c1a Hide the data table demo for now (#5060) 2016-07-27 09:07:29 -07:00
Hans Muller
76ea70a123 Change the Gallery AnimationDemo category (#5041) 2016-07-26 11:00:11 -07:00
Dragoș Tiselice
6f0635d6e8 Merge pull request #4953 from flutter/drawer-header-update
Updated DrawerHeader to new spec.
2016-07-21 11:17:18 -07:00
Hans Muller
36eb4a066f Support for Material arc point and rect transitions (#4938) 2016-07-21 10:48:41 -07:00
Dragos Tiselice
65e77142e9 Updated DrawerHeader and added UserAccountDrawer.
Removed old Stack layout and added a simple-to-extend interface for the
new drawer header. Also added a specialized UserAccountsDrawerHeader
consistent with Material Design guidelines.
2016-07-20 16:16:08 -07:00
Hans Muller
7a3c0a2eba Draw a smoother overscroll indicator on Android (#4945) 2016-07-18 12:20:00 -07:00
Hans Muller
445f250c91 Gallery UI tweaks (#4861) 2016-07-11 07:26:36 -07:00
Hans Muller
0a4f96e2b6 Gallery about box: state Flutter's status and link to our website (#4746) 2016-06-24 17:54:21 -07:00
Ian Hickson
cd89e867ef About box API (#4677)
This API is the front-end part of the work on showing licenses.

Future patches will:

* Provide an API for registering what licenses should be shown here,
  which will be used by this feature to shown licenses but could also be
  used by custom code for showing licenses (e.g. for people not using
  the Material widgets).

* Actually populate this license API from all the licenses we currently
  use in the engine, in the framework, and from any pub packages that
  are used (directly or indirectly) by the application.
2016-06-22 10:42:02 -07:00
Hans Muller
7c3a943548 Remove the gallery Live Demo buttons, etc (#4678) 2016-06-21 17:28:41 -07:00
Ian Hickson
e502e9c8f8 ImageIcon (#4649)
Anywhere that accepted IconData now accepts either an Icon or an
ImageIcon.

Places that used to take an IconData in an `icon` argument, notably
IconButton and DrawerItem, now take a Widget in that slot. You can wrap
the value that used to be passed in in an Icon constructor to get the
same result.

Icon itself now takes the icon as a positional argument, for brevity.

ThemeData now has an iconTheme as well as a primaryIconTheme, the same
way it has had a textTheme and primaryTextTheme for a while.

IconTheme.of() always returns a value now (though that value itself may
have nulls in it). It defaults to the ThemeData.iconTheme.

IconThemeData.fallback() is a new method that returns an icon theme data
structure with all fields filled in.

IconTheme.merge() is a new constructor that takes a context and creates
a widget that mixes in the new values with the inherited values.

Most places that introduced an IconTheme widget now use IconTheme.merge.

IconThemeData.merge and IconThemeData.copyWith act in a way analogous to
the similarly-named members of TextStyle.

ImageIcon is introduced. It acts like Icon but takes an ImageProvider
instead of an IconData.

Also: Fix the analyzer to actually check the stocks app.
2016-06-20 21:04:45 -07:00
Hans Muller
c707b53f01 AppBar bottom widget, not necessarily a TabBar (#4631) 2016-06-20 12:45:20 -07:00
Hans Muller
2de2ce35bb It is not easy being green (#4606) 2016-06-16 17:33:12 -07:00
Ian Hickson
2dfdc840b1 Refactor everything to do with images (#4583)
Overview
========

This patch refactors images to achieve the following goals:

* it allows references to unresolved assets to be passed
  around (previously, almost every layer of the system had to know about
  whether an image came from an asset bundle or the network or
  elsewhere, and had to manually interact with the image cache).

* it allows decorations to use the same API for declaring images as the
  widget tree.

It requires some minor changes to call sites that use images, as
discussed below.

Widgets
-------

Change this:

```dart
      child: new AssetImage(
        name: 'my_asset.png',
        ...
      )
```

...to this:

```dart
      child: new Image(
        image: new AssetImage('my_asset.png'),
        ...
      )
```

Decorations
-----------

Change this:

```dart
      child: new DecoratedBox(
        decoration: new BoxDecoration(
          backgroundImage: new BackgroundImage(
            image: DefaultAssetBundle.of(context).loadImage('my_asset.png'),
            ...
          ),
          ...
        ),
        child: ...
      )
```

...to this:

```dart
      child: new DecoratedBox(
        decoration: new BoxDecoration(
          backgroundImage: new BackgroundImage(
            image: new AssetImage('my_asset.png'),
            ...
          ),
          ...
        ),
        child: ...
      )
```

DETAILED CHANGE LOG
===================

The following APIs have been replaced in this patch:

* The `AssetImage` and `NetworkImage` widgets have been split in two,
  with identically-named `ImageProvider` subclasses providing the
  image-loading logic, and a single `Image` widget providing all the
  widget tree logic.

* `ImageResource` is now `ImageStream`. Rather than configuring it with
  a `Future<ImageInfo>`, you complete it with an `ImageStreamCompleter`.

* `ImageCache.load` and `ImageCache.loadProvider` are replaced by
  `ImageCache.putIfAbsent`.

The following APIs have changed in this patch:

* `ImageCache` works in terms of arbitrary keys and caches
  `ImageStreamCompleter` objects using those keys. With the new model,
  you should never need to interact with the cache directly.

* `Decoration` can now be `const`. The state has moved to the
  `BoxPainter` class. Instead of a list of listeners, there's now just a
  single callback and a `dispose()` method on the painter. The callback
  is passed in to the `createBoxPainter()` method. When invoked, you
  should repaint the painter.

The following new APIs are introduced:

* `AssetBundle.loadStructuredData`.

* `SynchronousFuture`, a variant of `Future` that calls the `then`
  callback synchronously. This enables the asynchronous and
  synchronous (in-the-cache) code paths to look identical yet for the
  latter to avoid returning to the event loop mid-paint.

* `ExactAssetImage`, a variant of `AssetImage` that doesn't do anything clever.

* `ImageConfiguration`, a class that describes parameters that configure
  the `AssetImage` resolver.

The following APIs are entirely removed by this patch:

* `AssetBundle.loadImage` is gone. Use an `AssetImage` instead.

* `AssetVendor` is gone. `AssetImage` handles everything `AssetVendor`
  used to handle.

* `RawImageResource` and `AsyncImage` are gone.

The following code-level changes are performed:

* `Image`, which replaces `AsyncImage`, `NetworkImage`, `AssetImage`,
  and `RawResourceImage`, lives in `image.dart`.

* `DecoratedBox` and `Container` live in their own file now,
  `container.dart` (they reference `image.dart`).

DIRECTIONS FOR FUTURE RESEARCH
==============================

* The `ImageConfiguration` fields are mostly aspirational. Right now
  only `devicePixelRatio` and `bundle` are implemented. `locale` isn't
  even plumbed through, it will require work on the localisation logic.

* We should go through and make `BoxDecoration`, `AssetImage`, and
  `NetworkImage` objects `const` where possible.

* This patch makes supporting animated GIFs much easier.

* This patch makes it possible to create an abstract concept of an
  "Icon" that could be either an image or a font-based glyph (using
  `IconData` or similar). (see
  https://github.com/flutter/flutter/issues/4494)

RELATED ISSUES
==============

Fixes https://github.com/flutter/flutter/issues/4500
Fixes https://github.com/flutter/flutter/issues/4495
Obsoletes https://github.com/flutter/flutter/issues/4496
2016-06-16 09:49:48 -07:00
Hans Muller
f21b140115 One list of GalleryItems to rule them all (#4549) 2016-06-13 16:50:12 -07:00
Hans Muller
187ff00294 New gallery app bar background (#4539) 2016-06-13 12:41:29 -07:00
Adam Barth
1d5d7f4ad3 Reorganize the calculator demo (#4536)
This patch is a warmup to improving the visuals in the calculator demo.

Related to #4535
2016-06-13 11:44:46 -07:00
Adam Barth
1a3adae101 Use @required for onPressed and onChanged (#4534)
We now use the `@required` annotation to encourage developers to
explicitly set onPressed and onChanged callbacks to null when that would
disable the widget.

Fixes #287
2016-06-12 13:25:06 -07:00
Todd Volkert
7ac0ce7938 Add API for specifying the system overlay style. (#4422)
Fixes 3544
2016-06-07 14:39:15 -07:00
Ian Hickson
ed48c70aa0 Remove the redundant drop-down button demo (#4380)
Turns out we have the same demo in the "Buttons" section now.
We don't need both.
2016-06-04 09:31:32 -07:00
Matt Perry
60e7535b58 Pesto demo for the Flutter Gallery app. (#4328)
* Pesto demo for the Flutter Gallery app.

* pesto.special.case
2016-06-03 17:05:01 -04:00
Hans Muller
1d516f0e94 Update gallery demo list (again) (#4339) 2016-06-03 08:37:16 -07:00
Hans Muller
dd27a489fa Update gallery demo list (#4335) 2016-06-02 16:12:54 -07:00
Hans Muller
309b9f8010 Version 0.0 of a gallery demo of the Material Design "Shrine" app (#4327) 2016-06-02 14:23:20 -07:00
Adam Barth
88d47d5705 Remove animation from Gallery header (#4322)
Although beautiful, having a continuous animation on the front page of the
gallery gives the impression that Flutter burns battery and makes phones hot.
This patch replaces the animation with solid purple. However, we might
eventually want to use a static image.
2016-06-02 09:57:47 -07:00