Kate Lovett
9b6813f4da
Reland TreeSliver ( #149839 )
...
Reland of https://github.com/flutter/flutter/pull/147171
It was reverted for a failing unit test that had passed in presubmit. Hopefully this sticks better.
Also fixed leaks in 37b10adc90
2024-06-17 19:49:05 +00:00
Hans Muller
9ce0a9e510
PinnedHeaderSliver ( #143196 )
...
A sliver that remains âpinnedâ to the top of the scroll view. Subsequent slivers scroll behind it. Typically the sliver is created as the first item in the list however it can be inserted anywhere and it will always stop at the top of the scroll view. When the scrolling axis is vertical, the PinnedHeaderSliverâs height is defined by its widget child. Multiple PinnedHeaderSlivers will layout one after the other, once they've scrolled to the top.
This sliver is preferable to the general purpose SliverPersistentHeader - for its relatively narrow use case - because there's no need to create a [SliverPersistentHeaderDelegate] or to predict the header's size.
Here's a [working demo in DartPad](https://dartpad.dev/?id=3b3f24c14fa201f752407a21ca9c9456 ).
https://github.com/flutter/flutter/assets/1377460/943f2e02-8e73-48b7-90be-61168978ff71
Related sliver utility PRs: https://github.com/flutter/flutter/pull/143538 , https://github.com/flutter/flutter/pull/143325 , https://github.com/flutter/flutter/pull/127340 .
2024-06-07 21:27:06 +00:00
Hans Muller
7e3e30929a
SliverResizingHeader ( #143325 )
...
A sliver that is pinned to the start of its `CustomScrollView` and reacts to scrolling by resizing between the intrinsic sizes of its min and max extent prototypes.
The minimum and maximum sizes of this sliver are defined by `minExtentPrototype` and `maxExtentPrototype`, a pair of widgets that are laid out once. You can use `SizedBox` widgets to define the size limits.
This sliver is preferable to the general purpose `SliverPersistentHeader` for its relatively narrow use case because there's no need to create a `SliverPersistentHeaderDelegate` or to predict the header's minimum or maximum size.
The sample shows how this sliver's two extent prototype properties can be used to create a resizing header whose minimum and maximum sizes match small and large configurations of the same header widget.
https://github.com/flutter/flutter/assets/1377460/fa7ced98-9d92-4d13-b093-50392118c213
Related sliver utility PRs: https://github.com/flutter/flutter/pull/143538 , https://github.com/flutter/flutter/pull/143196 , https://github.com/flutter/flutter/pull/127340 .
2024-06-06 22:35:12 +00:00
auto-submit[bot]
27e06569a1
Reverts "TreeSliver & associated classes ( #147171 )" ( #149754 )
...
Reverts: flutter/flutter#147171
Initiated by: QuncCccccc
Reason for reverting: tree is red due to a test in this PR
Original PR Author: Piinks
Reviewed By: {QuncCccccc, TahaTesser, bleroux}
This change reverts the following previous change:
**FYI for Reviewers:** Much of the API surface matches that of the 2D TreeView in https://github.com/flutter/packages/pull/6592 . If it changes here, it should change there, and vice versa.
📜 [Design Document](https://docs.google.com/document/d/1-aFI7VjkF9yMkWpP94J8T_JREDS-M3bOak26PVehUYg/edit?usp=sharing )
This adds classes and associated callbacks and controllers for TreeSliver. Core components:
- TreeSliver
- RenderTreeSliver
- TreeSliverNode
- TreeSliverController
- TreeSliverStateMixin
- TreeSliverIndentationType
Fixes https://github.com/flutter/flutter/issues/114299
https://github.com/flutter/flutter/assets/16964204/3facd095-7262-4068-aa33-d713e2deca99
https://github.com/flutter/flutter/assets/16964204/f851ae30-8e71-45c7-82a4-9606986a5872
2024-06-05 17:17:19 +00:00
Kate Lovett
b50eb97b7d
TreeSliver & associated classes ( #147171 )
...
**FYI for Reviewers:** Much of the API surface matches that of the 2D TreeView in https://github.com/flutter/packages/pull/6592 . If it changes here, it should change there, and vice versa.
ð [Design Document](https://docs.google.com/document/d/1-aFI7VjkF9yMkWpP94J8T_JREDS-M3bOak26PVehUYg/edit?usp=sharing )
This adds classes and associated callbacks and controllers for TreeSliver. Core components:
- TreeSliver
- RenderTreeSliver
- TreeSliverNode
- TreeSliverController
- TreeSliverStateMixin
- TreeSliverIndentationType
Fixes https://github.com/flutter/flutter/issues/114299
https://github.com/flutter/flutter/assets/16964204/3facd095-7262-4068-aa33-d713e2deca99
https://github.com/flutter/flutter/assets/16964204/f851ae30-8e71-45c7-82a4-9606986a5872
2024-06-04 22:50:06 +00:00
huycozy
e467289fb8
Fix DecoratedSliver sample code to reflect the description ( #148621 )
...
### Demo screenshot

### Related issue
- Fixes https://github.com/flutter/flutter/issues/145935
- Add test for `examples/api/test/widgets/sliver/decorated_sliver.0_test.dart` as a part of https://github.com/flutter/flutter/issues/130459 .
2024-05-23 08:52:15 +00: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
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
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
Greg Spencer
e3bc8efd39
Rename Sample classes ( #124080 )
...
Rename Sample classes
2023-04-04 20:34:29 +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
Michael Goderbauer
b308555ed1
Enable dangling_library_doc_comments
and library_annotations
lints ( #117365 )
2022-12-20 16:03:21 -08:00
Greg Spencer
e617d003fb
Normalize examples ( #111223 )
2022-09-09 21:17:11 +00:00
Ian Hickson
7ded3d91da
API documentation cleanup ( #108500 )
2022-08-10 22:03:20 +00:00