是否可以获取脚手架的身高和宽度?

时间:2019-06-15 16:16:08

标签: flutter dart

我正在尝试为我在应用程序中实现的小部件设置动态大小,我目前正在使用:

MediaQuery.of(context).size.width/height

为您提供屏幕的大小,但是我需要使小部件基于脚手架的大小而不是全屏

4 个答案:

答案 0 :(得分:1)

是的,您可以使用layoutBuilder小部件来实现。检查一下:

https://medium.com/@KarthikPonnam/flutter-layoutbuilder-widget-1-b09fd1e6907f

答案 1 :(得分:0)

您还可以从MediaQuery.of(context).size.height减去应用栏的高度

答案 2 :(得分:0)

您可以为脚手架使用构建器:

return Scaffold(
  appBar: AppBar(),
  body: Builder(
    builder: (context) {
      return Stack(
        children: <Widget>[

然后:

bodyHeight = MediaQuery.of(context).size.height - Scaffold.of(context).appBarMaxHeight

至少,我以这种方式找到了解决方案。

答案 3 :(得分:0)

这是正确获取脚手架身高的方法

首先,获取 AppBar高度。您需要使用变量。

var appBar = AppBar(
      title: Text('Testing'),
    );

现在,遵循以下代码[基本上是=>总高度-AppBar的高度-顶部出现填充(应用状态栏的高度)]

final bodyHeight = MediaQuery.of(context).size.height -
                  -appBar.preferredSize.height -
                  MediaQuery.of(context).padding.top

如何使用它?假设您有2个孩子的专栏

Column(children: [
        Container(
          height: bodyHeight * 0.7,
          child: ...,
        ),
        Container(
          height: bodyHeight * 0.3,
          child: ...,
        ),
      ],
)