Commit Graph

104 Commits

Author SHA1 Message Date
Loïc Sharma
e8231cea4c
Move examples to ListenableBuilder (#130671)
Updates examples to use the new `ListenableBuilder` if there's no animation. This is slightly more idiomatic.
2023-07-17 21:06:15 +00:00
Hans Muller
0d4b5ae122
Dev, examples/api, etc updated for Material 3 by default (#129683)
Updated tests in dev, examples/api, and tests/widgets to ensure that
they continue to pass when the default for `ThemeData.useMaterial3` is
changed to true.

This is the final set of changes required for
https://github.com/flutter/flutter/issues/127064.
2023-06-28 09:41:58 -07:00
Hans Muller
548fe14730
Updated TextMagnifierExampleApp to M3 (#129381) 2023-06-26 10:44:11 -07:00
Tae Hyung Kim
541fdd60d3
DecoratedSliver (#127823)
This is a second attempt to merge #107269. Currently I've fixed two of the issues:
1. Fixed horizontal scrollview by using a switch statement to consider vertical/horizontal case.
2. Fixed issue of `paintExtent` not being the right extent for painting. Rather using a `scrollExtent` for the main axis length of the decoration box and painting it offsetted by the `scrollOffset`.
3. If the sliver child has inifinite scrollExtent, then we only draw the decoration down to the bottom of the `cacheExtent`. The developer is expected to ensure that the border does not creep up above the cache area.

This PR includes a test that checks that the correct rectangle is drawn at a certain scrollOffset for both the horizontal and vertical case which should be sufficient for checking that `SliverDecoration` works properly now.

Fixes https://github.com/flutter/flutter/issues/107498.
2023-06-20 23:35:42 +00:00
Qun Cheng
c3b2175a40
Update golden tests (#128914) 2023-06-15 13:09:43 -07:00
Hans Muller
ce248e87f9
Update misc tests for Material3 (#128712) 2023-06-13 08:57:27 -07:00
Greg Spencer
a280346193
Add AppLifecycleListener, with support for application exit handling (#123274)
## Description

This adds `AppLifecycleListener`, a class for listening to changes in the application lifecycle, and responding to requests to exit the application.

It depends on changes in the Engine that add new lifecycle states: https://github.com/flutter/engine/pull/42418

Here's a diagram for the lifecycle states. I'll add a similar diagram to the documentation for these classes.

![Application Lifecycle Diagram](https://github.com/flutter/flutter/assets/8867023/f6937002-cb93-4ab9-a221-25de2c45cf0e)

## Related Issues
 - https://github.com/flutter/flutter/issues/30735

## Tests
- Added tests for new lifecycle value, as well as for the `AppLifecycleListener` itself.
2023-06-08 22:57:19 +00:00
Tae Hyung Kim
f2351f61d4
Sliver Main Axis Group (#126596)
This widget implements the ability to place slivers one after another in
a single ScrollView in a way that all child slivers are drawn within the
bounds of the group itself (i.e. SliverPersistentHeaders aren't drawn
outside of the scroll extent provided by all of the child slivers). The
design document for SliverMainAxisGroup can be found
[here](https://docs.google.com/document/d/1e2bdLSYV_Dq2h8aHpF8mda67aOmZocPiMyjCcTTZhTg/edit?resourcekey=0-Xj2X2XA3CAFae22Sv3hAiA).

Fixes https://github.com/flutter/flutter/issues/33137.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat

---------

Co-authored-by: Kate Lovett <katelovett@google.com>
2023-06-08 15:54:09 -07:00
Phil Quitslund
5bf6318688
Update collection-fors to prefer final (as per updated prefer_final_in_for_each) (#127511)
The newly updated lint will soon flag for-each in collections.

See discussion: https://github.com/dart-lang/linter/pull/4383

/cc @goderbauer
2023-05-26 23:34:36 +00:00
Taha Tesser
c05a05e6fc
Add ScrollNotificationObserver sample (#127023)
fixes https://github.com/flutter/flutter/issues/126702

### Preview

https://github.com/flutter/flutter/assets/48603081/4c529a0d-b8a5-4950-9095-429f1c5eccbb
2023-05-25 15:58:52 +00:00
Ian Hickson
027bb84444
Make SlottedMultiChildRenderObjectWidgetMixin a concrete class (#126108)
This is a proof of concept for renaming SlottedMultiChildRenderObjectWidgetMixin to SlottedMultiChildRenderObjectWidget and making it a concrete class.

I also made SlottedContainerRenderObjectMixin generic instead of being specialized to RenderBox.

I don't think this is something we can easily automigrate, but we may not need to, I don't know how common this is...
2023-05-16 22:28:54 +00:00
Kate Lovett
27caa7fed9
Add ScrollController.onAttach & onDetach, samples/docs on listening/getting scrolling info (#124823)
This PR does a couple of things!

https://user-images.githubusercontent.com/16964204/231897483-416287f9-50ce-468d-a714-2a4bc0f2e011.mov

![Screenshot 2023-04-13 at 3 24 28 PM](https://user-images.githubusercontent.com/16964204/231897497-f5bee17d-43ed-46e5-acd7-e1bd64768274.png)

Fixes #20819 
Fixes #41910 
Fixes #121419

### Adds ScrollController.onAttach and ScrollController.onDetach

This resolves a long held pain point for developers. When using a scroll controller, there is not scroll position until the scrollable widget is built, and almost all methods of notification are only triggered when scrolling happens. Adding these two methods will help developers gain access to the scroll position when it is created. A common workaround for this was using a post frame callback to access controller.position after the first frame, but this is ripe for issues such as having multiple positions attached to the controller, or the scrollable no longer existing after that post frame callback. I think this can also be helpful for folks to debug cases when the scroll controller has multiple positions attached.

In particular, this also resolves this commented case: https://github.com/flutter/flutter/issues/20819#issuecomment-417784218
The isScrollingNotifier is hard for developers to access.

### Docs & samples

I was surprised we did not have samples on scroll notification or scroll controller, so I overhauled it and added a lot of docs on all the different ways to access scrolling information, when it is available and how they differ.
2023-05-15 21:01:06 +00:00
Taha Tesser
12659f2a7b
Fix MultiChildLayoutDelegate.hasChild doc (#126433)
fixes https://github.com/flutter/flutter/issues/115898

`hasChild` checks `_idToChild` map.  `_idToChild` is not assigned until `_callPerformLayout` is called.
So `hasChild` shouldn't be called in `getSize`.

df789c9e76/packages/flutter/lib/src/rendering/custom_layout.dart (L400-L404)

Updated docs and example class names.
2023-05-11 14:59:07 +00:00
Michael Goderbauer
58454e9e31
Remove dead code (#126266)
Dead code was flagged by `unreachable_from_main` lint, which is still experimental and not ready to be enabled yet.
2023-05-09 15:47:16 +00:00
Tae Hyung Kim
1a0b03cb25
Sliver Cross Axis Group (#123862)
This widget implements the ability to place slivers side by side in a single ScrollView so that they scroll together. The design document for `SliverCrossAxisGroup` can be found [here](https://docs.google.com/document/d/1e2bdLSYV_Dq2h8aHpF8mda67aOmZocPiMyjCcTTZhTg/edit?resourcekey=0-Xj2X2XA3CAFae22Sv3hAiA).

Fixes #56756.
2023-04-28 23:41:58 +00:00
Tae Hyung Kim
482d1aaf13
Sliver Constrained Cross Axis (#125239)
Reimplements what we reverted here: #125233.
2023-04-24 23:17:36 +00:00
Tae Hyung Kim
9caabdd220
Revert "Sliver Constrained Cross Axis" (#125233)
Going to make some changes to the implementation so I'll revert in the meantime.

Reverts flutter/flutter#124337
2023-04-20 18:47:50 +00:00
Tae Hyung Kim
3c18f57480
Sliver Constrained Cross Axis (#124337)
Sliver Constrained Cross Axis
2023-04-10 21:15:48 +00:00
Loïc Sharma
6058e95919
Add CallbackShortcuts example (#123944)
Add CallbackShortcuts example
2023-04-05 22:17:59 +00:00
Greg Spencer
e3bc8efd39
Rename Sample classes (#124080)
Rename Sample classes
2023-04-04 20:34:29 +00:00
Greg Spencer
c26d1de4a0
Remove the networked image from the example (#123728) 2023-03-29 18:58:25 -07:00
Michael Goderbauer
fda9ecfef7
Remove 1745 decorative breaks (#123259)
Remove 1745 decorative breaks
2023-03-22 21:12:22 +00:00
Ian Hickson
3fe5740153
Documentation improvements (#122787)
Documentation improvements
2023-03-22 18:58:57 +00:00
Bruno Leroux
3b4a882b61
Add one DefaultTextStyle example (#122182)
Add one DefaultTextStyle example
2023-03-08 20:40:54 +00:00
Jami Couch
2a67bf78f0
Add support for iOS UndoManager (#98294)
Add support for iOS UndoManager
2023-03-08 19:45:49 +00:00
LongCatIsLooong
e7ab3b07f8
OverlayPortal (#105335)
`OverlayPortal`
2023-03-02 17:34:01 +00:00
Taha Tesser
9a4e897965
Add OverflowBox example and update existing examples under basic.dart (#121213)
Add `OverflowBox` example and update existing examples under `basic.dart`
2023-02-27 18:52:00 +00:00
Lioness100
26b6c1bedd
Fix typos (#121171)
* Fix typos

* lowercase animated & opacity

* Undo typo fix

---------

Co-authored-by: Michael Goderbauer <goderbauer@google.com>
2023-02-23 19:43:21 +00:00
Ian Hickson
6205c110d6
Remove "note that" in our documentation (as per style guide) (#120842)
* lerp documentation

* Remove Note, Note That from repo

* Improve BorderSide documentation.

* apply review comments
2023-02-17 22:27:33 +00:00
Jessica Pereira
9b86a4853e
Fix gets removedItem instead of its index (#119638)
* fix: gets removedItem instead of its index
add: sliver_animated_list.0_test.dart

* fix: sliver_animated_list.0_test.dart

* fix: pr comments

* fix test import

Co-authored-by: Taha Tesser <tessertaha@gmail.com>

---------

Co-authored-by: Taha Tesser <tessertaha@gmail.com>
2023-02-03 00:15:58 +00:00
Michael Goderbauer
b0f1714b7b
Make Flex,Row,Column const for real (#119673)
* Make Flex,Row,Column const for real

* dart fix --apply

* fix snippets

* fix integration test

* add comment
2023-02-02 19:33:57 +00:00
Tanay Neotia
0e22aca785
Add support for image insertion on Android (#110052)
* Add support for image insertion on Android

* Fix checks

* Use proper Dart syntax on snippet

* Specify type annotation on list

* Fix nits, add some asserts, and improve example code

* Add missing import

* Fix nullsafety error

* Fix nullsafety error

* Remove reference to contentCommitMimeTypes in docs

* Fix nits

* Fix warnings and import

* Add test for content commit in editable_text_test.dart

* Check that URIs are equal in test

* Fix nits and rename functions / classes to be more self-explanatory

* Fix failing debugFillProperties tests

* Add empty implementation to `insertContent` in TextInputClient

* Tweak documentation slightly

* Improve docs for contentInsertionMimeTypes and fix assert

* Rework contentInsertionMimeType asserts

* Add test for onContentInserted example

* Switch implementation to a configuration class for more granularity in setting mime types

* Fix nits

* Improve docs and fix doc tests

* Fix more nits (LongCatIsLooong)

* Fix failing tests

* Make parameters (guaranteed by platform to be non-nullable) non-nullable

* Fix analysis issues
2023-01-31 19:46:18 +00:00
Ahmed Ashour
c35efdaa68
Remove superfluous words. (#119008)
* Remove superfluous words.

* Update packages/flutter/lib/src/widgets/slotted_render_object_widget.dart

Co-authored-by: Michael Goderbauer <goderbauer@google.com>
2023-01-24 01:57:00 +00:00
Michael Goderbauer
11d21e066b
Add @pragma('vm:entry-point') to RestorableRouteBuilder arguments (#118738) 2023-01-18 22:56:24 +00:00
Michael Goderbauer
b308555ed1
Enable dangling_library_doc_comments and library_annotations lints (#117365) 2022-12-20 16:03:21 -08:00
Michael Goderbauer
81bc54be75
Enable use_colored_box lint (#117370) 2022-12-20 14:09:55 -08:00
Greg Spencer
fb9133b881
Add ListenableBuilder with examples (#116543)
* Add ListenableBuilder with examples

* Add tests

* Add tests

* Fix Test

* Change AnimatedBuilder to be a subclass of ListenableBuilder
2022-12-07 01:15:22 +00:00
Greg Spencer
0cb9f70460
Menu bar accelerators (#114852)
* Add MenuMenuAcceleratorLabel to support accelerators.

* Review Changes

* Review Changed

* Fix default label builder to use characters

* Remove golden test that shouldn't have been there.
2022-11-29 00:27:20 +00:00
Greg Spencer
1730662bc0
Deprecate AnimatedListItemBuilder and AnimatedListRemovedItemBuilder (#113131) 2022-10-10 17:58:10 +00:00
Greg Spencer
7523ab5cc1
Add SliverAnimatedGrid and AnimatedGrid (#112982) 2022-10-07 22:15:11 +00:00
Taha Tesser
6432742036
Update AnimatedSlide example (#112803) 2022-10-03 18:44:13 +00:00
Anthony Oleinik
4ceeca0833
Added example for Magnifier and TextMagnifier (#110218) 2022-09-23 20:29:32 +00:00
Nazareno Cavazzon
0ad0a56e86
panningDirection parameter added to InteractiveViewer (#109014) 2022-09-16 17:22:12 +00:00
Greg Spencer
e617d003fb
Normalize examples (#111223) 2022-09-09 21:17:11 +00:00
LongCatIsLooong
bdb74e16c6
Fix Action.overridable example (#110824) 2022-09-02 00:46:21 +00:00
Greg Spencer
2051f09c68
Add Overlay.maybeOf, make Overlay.of return a non-nullable instance (#110811) 2022-09-02 00:13:12 +00:00
Kate Lovett
7e12b37111
Deprecate 2018 text theme parameters (#109817) 2022-08-22 20:00:34 +00:00
Taha Tesser
9da693e3fa
Add an example for how to hide default scrollbar on desktop platform. (#108542) 2022-08-18 13:09:23 +00:00
Ian Hickson
9b2668a451
Minor fix compendium (#107874) 2022-08-11 02:33:07 +00:00
Ian Hickson
7ded3d91da
API documentation cleanup (#108500) 2022-08-10 22:03:20 +00:00