Skip to content
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

A Flex (Column/Row) like widget for slivers #33137

Closed
spkersten opened this issue May 21, 2019 · 9 comments · Fixed by #126596
Closed

A Flex (Column/Row) like widget for slivers #33137

spkersten opened this issue May 21, 2019 · 9 comments · Fixed by #126596
Assignees
Labels
c: new feature Nothing broken; request for a new capability f: scrolling Viewports, list views, slivers, etc. framework flutter/packages/flutter repository. See also f: labels. P2 Important issues not at the top of the work list

Comments

@spkersten
Copy link
Contributor

spkersten commented May 21, 2019

Having a widget like Column for slivers would be useful. For example for applying the same amount of padding to a heading and a list. Or for allowing abstractions to be created, e.g., a widget for a screen with a SliverAppBar plus some sliver footer and a sliver body as parameter.

Example:

CustomScrollView(
  slivers: [
    SliverAppBar(/* ... */),
    SliverPadding(
      padding: EdgeInsets.symmetric(horizontal: 16),
      sliver: SliverGroup(
        slivers: [
          SliverToBoxAdapter(child: Text("Items)),
          SliverList(/* many items */)
        ]
      )
    )
  ]
)
@spkersten spkersten mentioned this issue May 21, 2019
9 tasks
@BondarenkoStas
Copy link

@spkersten I read the #33138 (comment), do you think the issue should stay open?

@BondarenkoStas BondarenkoStas added the c: new feature Nothing broken; request for a new capability label Oct 8, 2019
@Piinks Piinks added f: scrolling Viewports, list views, slivers, etc. framework flutter/packages/flutter repository. See also f: labels. labels Oct 25, 2019
@Piinks Piinks self-assigned this Oct 25, 2019
@Piinks
Copy link
Contributor

Piinks commented Oct 25, 2019

Let's leave this open. I'm working on something similar that will address this and #16854 with potentially SliverFlex, SliverGroup, SliverExpanded, and SliverSpacer as well as updates to SliverPersistentHeaders etc. :)

@Piinks Piinks added this to the Goals milestone Jan 9, 2020
@Piinks Piinks removed their assignment Feb 4, 2020
@jamesblasco
Copy link
Contributor

The progress you did it is awesome! Thanks @Piinks 💙💙.
I have been playing around with my custom RenderSliverSection and I would be happy to help with this.
What are the main points that are holding this back?

@kf6gpe kf6gpe added the P2 Important issues not at the top of the work list label May 29, 2020
@Hixie Hixie removed this from the None. milestone Aug 17, 2020
@Kavantix
Copy link
Contributor

Kavantix commented Sep 4, 2020

I released a package yesterday that includes a MultiSliver (essentially solving this issue)
https://pub.dev/packages/sliver_tools

It does however not include any Flex like functionality since IMO that needs to be solved differently for slivers.

Any feedback/suggestions would be appreciated

@naamapps
Copy link

naamapps commented Sep 5, 2021

Any news on this?
Theres a lot to improve in the slivers department.
SliverCenter, SliverRow, SliverColumn, SliverSizedBox.
These are just examples of slivers I think are needed inside the framework.
Thanks

@ghost
Copy link

ghost commented Sep 9, 2021

Yes, very much needed, the sliver part of flutter is extremely underdeveloped imo

@Piinks
Copy link
Contributor

Piinks commented Nov 30, 2022

#56756 (comment) linking for reference.

@thkim1011
Copy link
Contributor

Hey everyone, I wrote up a design doc for grouping Slivers into a single Sliver. I'd appreciate any opinions people might have!

thkim1011 added a commit that referenced this issue Jun 8, 2023
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 #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>
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: new feature Nothing broken; request for a new capability f: scrolling Viewports, list views, slivers, etc. framework flutter/packages/flutter repository. See also f: labels. P2 Important issues not at the top of the work list
Projects
Development

Successfully merging a pull request may close this issue.

9 participants