简体   繁体   English

自定义 Flutter 小部件以返回两个小部件以与 CustomScrollView / slivers 一起使用

[英]Custom Flutter widget to return two widgets for use with CustomScrollView / slivers

I have a Flutter CustomScrollView with the following structure:我有一个具有以下结构的 Flutter CustomScrollView:

body: CustomScrollView(
  slivers: <Widget>[
    MyCustomTitle(...),
    MyCustomSliverGrid(...)
    MyCustomTitle(...),
    MyCustomSliverGrid(...)
    MyCustomTitle(...),
    MyCustomSliverGrid(...)
    ...
  ],
),

MyCustomTitle extends StatelessWidget and in the build method returns a SliverToBoxAdapter widget, and the MyCustomSliverGrid widget extends StatelessWidget and in the build method returns a SliverGrid widget. MyCustomTitle扩展StatelessWidget并在build方法中返回一个SliverToBoxAdapter小部件,而MyCustomSliverGrid小部件扩展StatelessWidget并在build方法中返回一个SliverGrid小部件。

How can I implement a single Widget ( MyCustomSliverGridWithTitle ) that returns both the custom title and the custom SliverGrid?如何实现返回自定义标题和自定义 SliverGrid 的单个小部件 ( MyCustomSliverGridWithTitle )? From the build method of a StatelessWidget I can only return a single Widget, not two.StatelessWidgetbuild方法中,我只能返回一个 Widget,而不是两个。

You can bundle MyCustomTitle and MyCustomSliverGrid into one widget with MultiSliver .您可以使用MultiSliverMyCustomTitleMyCustomSliverGrid捆绑到一个小部件中。

class MyCustomSliverGridWithTitle extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiSliver(
      children: <Widget>[
        MyCustomTitle(...),
        MyCustomSliverGrid(...),
      ],
    );
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM