-
Notifications
You must be signed in to change notification settings - Fork 29.7k
DecoratedSliver #127823
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DecoratedSliver #127823
Conversation
This reverts commit a02cd54.
|
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
Piinks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to test this with the sliver group widgets once they land, that would make for a pretty great sample app to include here.
|
Also, looks like the analyzer is unhappy here. |
Piinks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like the docs tests are failing since SliverDecoration was renamed but is still used throughout the docs.
| /// it is necessary to ensure that the bottom border does not creep | ||
| /// above the top of the bottom cache. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this mean to the developer? Can you explain why/when this would happen?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added an explanation on how this can happen.
| /// Commonly used with [BoxDecoration]. | ||
| /// | ||
| /// The [child] is not clipped. To clip a child to the shape of a particular | ||
| /// [ShapeDecoration], consider using a [ClipPath] widget. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean users cannot provide a ShapeDecoration to DecoratedSliver.decoration? Or should not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They could but it won't clip the contents of the child. I guess the developer should try to guarantee that the contents of the child fits within the decoration.
| )); | ||
| }); | ||
|
|
||
| testWidgets('DecoratedSliver works with SliverMainAxisGroup', (WidgetTester tester) async { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a test for cross axis group?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
| @@ -0,0 +1,388 @@ | |||
| // Copyright 2014 The Flutter Authors. All rights reserved. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add tests for reverse in the horizontal and vertical axes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
Co-authored-by: Kate Lovett <[email protected]>
…into tae/sliver-decoration
Piinks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Manual version of #4269 ---- Roll Flutter from fc8856e to c40baf4 (57 revisions) flutter/flutter@fc8856e...c40baf4 2023-06-21 [email protected] Roll Packages from 6e1918f to 0fdf05f (8 revisions) (flutter/flutter#129286) 2023-06-21 [email protected] move test ownership from zanderso -> tools team (flutter/flutter#129199) 2023-06-21 [email protected] Refactor `Analytics` global getter to point to context only (flutter/flutter#129196) 2023-06-21 [email protected] Roll Flutter Engine from cfbd3652532d to f973fb4636d3 (1 revision) (flutter/flutter#129253) 2023-06-21 [email protected] Roll Flutter Engine from 059643dcc8e3 to cfbd3652532d (1 revision) (flutter/flutter#129243) 2023-06-21 [email protected] Roll Flutter Engine from 5313ca367549 to 059643dcc8e3 (1 revision) (flutter/flutter#129240) 2023-06-21 [email protected] Roll Flutter Engine from 946f523859fe to 5313ca367549 (2 revisions) (flutter/flutter#129234) 2023-06-21 [email protected] Roll Flutter Engine from e5a860c5479c to 946f523859fe (2 revisions) (flutter/flutter#129232) 2023-06-21 [email protected] Relax `OverlayPortal` asserts (flutter/flutter#129053) 2023-06-21 [email protected] Roll Flutter Engine from adfc3af300a9 to e5a860c5479c (3 revisions) (flutter/flutter#129228) 2023-06-21 [email protected] Move all the firebase lab device configs to .ci.yaml. (flutter/flutter#129219) 2023-06-21 [email protected] Roll Flutter Engine from 7d4abb81ccd1 to adfc3af300a9 (2 revisions) (flutter/flutter#129225) 2023-06-20 [email protected] update resolution-aware asset docs links (flutter/flutter#128769) 2023-06-20 [email protected] Fix: Magnifier appears and won't dismiss (flutter/flutter#128545) 2023-06-20 [email protected] DecoratedSliver (flutter/flutter#127823) 2023-06-20 [email protected] Roll Flutter Engine from 666244148e89 to 7d4abb81ccd1 (1 revision) (flutter/flutter#129217) 2023-06-20 [email protected] Roll Flutter Engine from 06d0c08460e5 to 666244148e89 (2 revisions) (flutter/flutter#129208) 2023-06-20 [email protected] fixed PreferredSize constuctor invocations (flutter/flutter#128181) 2023-06-20 [email protected] Roll Flutter Engine from 1c16af76ca26 to 06d0c08460e5 (3 revisions) (flutter/flutter#129200) 2023-06-20 [email protected] Roll Flutter Engine from ec64672afd91 to 1c16af76ca26 (1 revision) (flutter/flutter#129197) 2023-06-20 [email protected] Roll Flutter Engine from 4444ede34a9c to ec64672afd91 (3 revisions) (flutter/flutter#129194) 2023-06-20 [email protected] Fix duplicate devices from xcdevice with iOS 17 (flutter/flutter#128802) 2023-06-20 [email protected] iOS info.plist template: make UIViewControllerBasedStatusBar to be true (flutter/flutter#128970) 2023-06-20 [email protected] Fix detection that tests are running on monorepo bots (flutter/flutter#129173) 2023-06-20 [email protected] Use the new `getIsolatePauseEvent` method from VM service to check for pause event. (flutter/flutter#128834) 2023-06-20 [email protected] Adding ScrollController support for Stepper widget (flutter/flutter#128814) 2023-06-20 [email protected] Roll Packages from 59d93d6 to 6e1918f (6 revisions) (flutter/flutter#129176) 2023-06-20 [email protected] Refactor generate_localizations_test.dart (flutter/flutter#128974) 2023-06-20 [email protected] [process] Add a design doc issue template. (flutter/flutter#128361) 2023-06-20 [email protected] Roll Flutter Engine from bd6d3fc90462 to 4444ede34a9c (1 revision) (flutter/flutter#129169) 2023-06-20 [email protected] Roll Flutter Engine from 73c4ba4240cc to bd6d3fc90462 (1 revision) (flutter/flutter#129168) 2023-06-20 [email protected] Roll Flutter Engine from 7ee874792067 to 73c4ba4240cc (1 revision) (flutter/flutter#129162) 2023-06-20 [email protected] Roll Flutter Engine from 6a6c8fb591f5 to 7ee874792067 (1 revision) (flutter/flutter#129160) 2023-06-20 [email protected] Add to API docs to explain what Assist and Suggestion chips are (flutter/flutter#129034) 2023-06-20 [email protected] Roll Flutter Engine from a91bb3f566b9 to 6a6c8fb591f5 (1 revision) (flutter/flutter#129158) 2023-06-20 [email protected] Roll Flutter Engine from e0d456d9251b to a91bb3f566b9 (1 revision) (flutter/flutter#129148) 2023-06-20 [email protected] Roll Flutter Engine from 55418e648958 to e0d456d9251b (1 revision) (flutter/flutter#129146) 2023-06-19 [email protected] Roll Flutter Engine from 84ecaa053ec6 to 55418e648958 (1 revision) (flutter/flutter#129145) 2023-06-19 [email protected] Roll Flutter Engine from 23a2c246600f to 84ecaa053ec6 (2 revisions) (flutter/flutter#129142) 2023-06-19 [email protected] Introduce MaterialState `color` property for chips (flutter/flutter#128584) 2023-06-19 [email protected] Roll Flutter Engine from 280491d4cc21 to 23a2c246600f (8 revisions) (flutter/flutter#129140) 2023-06-19 [email protected] Fix an ordering dependency in the flutter_tools upgrade test (flutter/flutter#129131) 2023-06-19 [email protected] Roll Flutter Engine from 164c6b49dfb5 to 280491d4cc21 (1 revision) (flutter/flutter#129102) 2023-06-19 [email protected] Fix `InputDecoration.applyDefaults` ignoring some properties (flutter/flutter#129010) 2023-06-19 [email protected] Roll Flutter Engine from d298f0bf720c to 164c6b49dfb5 (1 revision) (flutter/flutter#129100) 2023-06-19 [email protected] Roll Flutter Engine from 7ffa1355f718 to d298f0bf720c (24 revisions) (flutter/flutter#129092) ... ----

This is a second attempt to merge #107269. Currently I've fixed two of the issues:
paintExtentnot being the right extent for painting. Rather using ascrollExtentfor the main axis length of the decoration box and painting it offsetted by thescrollOffset.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
SliverDecorationworks properly now.Fixes #107498.