如何在Flutter

时间:2018-05-08 17:47:13

标签: flutter flutter-layout

我已经覆盖了AppBar构造函数中的titleSpacing。但是标题空间没有区别。

new AppBar(

backgroundColor: Colors.amber,
title: new Text("Flying Dutchman",
  style: new TextStyle(
    color: const Color(0xFF444444),
    fontSize: 30.0,
    fontWeight: FontWeight.w900,
  ),
),
titleSpacing: 0.00,
centerTitle: true,
elevation: 0.0,
)

enter image description here

我希望减少应用栏标题的顶部空间。

2 个答案:

答案 0 :(得分:4)

titleSpacing与实际的appbar高度和顶部填充无关。它是水平轴上的间距。

AppBar是一个遵循material规则的prestylized组件。

如果您不喜欢这些规则,请不要先使用AppBar。然后去创建自己的组件! :)

这是一个实现示例:

class MyAppbar extends StatelessWidget implements PreferredSizeWidget {
  final String title;

  const MyAppbar({this.title});

  @override
  Widget build(BuildContext context) {
    return new Container(
        color: Colors.amber,
        height: preferredSize.height,
        child: new Center(
          child: new Text(title),
        ),
      );
  }

  @override
  Size get preferredSize => const Size.fromHeight(40.0);
}

答案 1 :(得分:0)

只需将transform作为文本视图的根,并在nagative中提供x值即可。

new AppBar(

  backgroundColor: Colors.amber,
  title:new Transform(
            transform: new Matrix4.translationValues(-20.0, 0.0, 0.0),
            child: new Text("Flying Dutchman",
            style: new TextStyle(
                   color: const Color(0xFF444444),
                   fontSize: 30.0,
                   fontWeight: FontWeight.w900,
                   ),
             ),
           ),
 titleSpacing: 0.00,
 centerTitle: true,
 elevation: 0.0,
)