从FlexibleSpace标题中删除默认填充

时间:2018-10-24 08:41:22

标签: dart flutter

enter image description here

代码:

CustomScrollView(
  slivers: <Widget>[
    SliverAppBar(
      expandedHeight: 200.0,
      flexibleSpace: FlexibleSpaceBar(
        title: Container(color: Colors.red, child: Text("Flexible title")),
        background: Image.asset("assets/chocolate.jpg", fit: BoxFit.cover),
      ),
    ),
    SliverList(delegate: SliverChildListDelegate(_buildChildren())),
  ],
);

为什么标题中有默认填充。我使用Container进行对比,以便可以轻松看到边距。即使我尝试使用centerTitle: false,它也没有任何改变。

3 个答案:

答案 0 :(得分:2)

您现在可以像这样使用 titlePadding 属性:

      flexibleSpace: FlexibleSpaceBar(
              title: Text('Home'),
              titlePadding: EdgeInsetsDirectional.only(
                start: 0.0,
                bottom: 16.0,
              ),
            ),

答案 1 :(得分:1)

_FlexibleSpaceBarState的方法build中:

Container(
      padding: EdgeInsetsDirectional.only(
        start: effectiveCenterTitle ? 0.0 : 72.0,
        bottom: 16.0
      )

因此,除了自定义之外,没有其他方法可以删除此底部填充

为了进行测试,我将源代码中的一个字符串更改为bottom: 0.0,并且该填充消失了。

答案 2 :(得分:0)

不居中,否则EdgeInsetsDirectional.only(start 0, bottom: 16)

最终的EdgeInsetsGeometry titlePadding;