Flutter - 仅在足够 space 可用时显示图像

Flutter - only show image if enough space available

我有一个 Expanded 小部件,它的子部件是 Image.asset(...)
在小型手机上 space 不够用,图像被大幅缩小。由于无论如何它只是为了吸引眼球,如果至少没有可用的 height >= 100.0,我想隐藏/不显示 Image

如何在 Flutter 中完成此操作?有没有办法获取父窗口小部件的大小?

您可以使用LayoutBuilder获取小部件的输入约束。

然后根据这些约束决定是否显示图像

LayoutBuilder(
  builder: (context, constraint) {
      if (constraint.maxHeight < 100.0) {
        // too small
        return Container();
      } else {
        // ok
        return Column(
          children: <Widget>[
            Image.asset("foo"),
            Container()
          ],
        );
      }
  },
)

很棒的 Remi 解决方案,您也可以使用 MediaQuery 和 MediaQueryData,它有一些属性和方法可以在这种情况下为您提供帮助。

一些属性是方向、大小、填充、设备像素比等

示例:

MediaQuery.of(context).orientation

https://docs.flutter.io/flutter/widgets/MediaQuery-class.html https://docs.flutter.io/flutter/widgets/MediaQueryData-class.html