如何自定义SliverAppBar应用栏?

DNB*_*ims 3 dart flutter

在此输入图像描述

我想在绿色区域添加更多信息,但是当用户向上滚动时,我会保持_ SliverAppBar在顶部...,像这样:

在此输入图像描述

这是我目前的源代码:

body: new CustomScrollView(slivers: <Widget>[
          const SliverAppBar(
            pinned: true,
            expandedHeight: 300.0, // TODO: check out later
            flexibleSpace: const FlexibleSpaceBar(
              title: const Text('_SliverAppBar')
            ),
          ),
          new SliverList(delegate: new SliverChildListDelegate(_galleryListItems()))
        ]),
Run Code Online (Sandbox Code Playgroud)

Ian*_*Ian 11

FlexibleSpaceBar有接受任何widget的背景属性

用于构建您需要的信息:

FlexibleSpaceBar(
  title: Text('_SliverAppBar'),
  background: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Text('Info'),
    ],
  ),
),
Run Code Online (Sandbox Code Playgroud)

是一个更完整的示例,它添加了一个副标题并在用户滚动时隐藏它.

  • 好吧,我注意到在你的代码中你用 `const` 实例化了小部件,当你这样做时,所有的属性都必须接收带有 `const` 的实例。Dart 2 有一个特性,你不需要指定如何实例化类,所以你可以省略 `new` 关键字和 `cost` 关键字,让语言推断它将使用哪个。我建议使用 dart 的功能:) (3认同)