Flutter:从AppBar中减去状态栏高度

15
我已经将我的AppBar向下移动,但现在它的高度太大了。我想知道如何从AppBar的高度中减去状态栏的高度。目前的情况如下所示:

enter image description here

下面是如何设置AppBar的高度:

Flutter: Setting the height of the AppBar

下面是获取状态栏高度的方法:

How or where do I change the system status bar Flutter framework

final double statusBarHeight = MediaQuery.of(context).padding.top;
return new Padding(
      padding: new EdgeInsets.only(top: statusBarHeight),
      child: content
);

我只是不知道如何将这些部分组合在一起(我对Flutter非常陌生,请仔细解释答案)


1
你试过PreferredSize吗? - Praneeth Dhanushka Fernando
谢谢 statusBarHeight,我一直在寻找它 :D - Quentin Doutriaux
1
我得到了.padding.top的0.0。 - Phani Rithvij
@PhaniRithvij 因为您使用了嵌套的 Scaffords,您可以尝试这段代码 MediaQueryData.fromWindow(window).padding.top - Hoang
2个回答

14

这是您要找的吗?

在此输入图像描述

Widget build(BuildContext context) {
  return SafeArea(
    child: Scaffold(
      body: Column(
        children: <Widget>[
          Container(
            height: 70,
            alignment: Alignment.center,
            color: Colors.red,
            child: Text(
              "ADVERTISE HERE!",
              style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 24),
            ),
          ),
          AppBar(title: Text("Main page")),
        ],
      ),
    ),
  );
}

这太完美了,谢谢。我与事实斗争,即我的对象在树中定位不同,然后就会变得很奇怪哈哈。 - Paul Kruger

0

现在您可以轻松地设置primary: false并从AppBar的高度中减去状态栏的高度(Doc)

 AppBar(
     primary: false,
     ...
  ),

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接