使用灵活的SliverAppBar作为非顶级元素

时间:2019-01-04 09:08:34

标签: flutter flutter-layout

我正在尝试在自定义应用栏下方显示一个灵活的SliverAppBar(假设它是一个高度为80.0的容器)。

将SliverAppBar设置为顶部元素时,它可以正常工作,但是当它是第二个元素时,顶部填充与Android UI界面一样大。

 Scaffold(
   body: Column(children: <Widget>[
          Container(height: 80.0),
          Expanded(child: _content())
        ]),
 );

_content()

return CustomScrollView(slivers: <Widget>[
  SliverAppBar(
    backgroundColor: Colors.red,
    leading: PopContentButton(),
    title: Text('Test'),
    snap: true,
    pinned: true,
    floating: true,
    bottom: TabBar(
      tabs: _tabs(),
      controller: TabControllerExtended(length: 4, vsync: this),
    ),
  ),
  SliverList(delegate: new SliverChildListDelegate(buildTextViews(50)))
]);

这不是它的外观: wrong

它应该看起来像: right

1 个答案:

答案 0 :(得分:1)

SliverAppBarMediaQuery.removePadding包裹您。

更新的代码:

....
MediaQuery.removePadding(
        context: context,
        removeTop: true,
        child: SliverAppBar(
...