颤振-仅在有足够可用空间时显示图像

时间:2018-08-08 14:59:31

标签: flutter flutter-layout

我有一个Expanded小部件,其中有一个Image.asset(...)是孩子。
在小型手机上没有足够的空间,并且图像按比例缩小。由于无论如何它仅用于糖果,如果没有至少Image可用,我想隐藏/不显示height >= 100.0

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

2 个答案:

答案 0 :(得分:2)

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

然后基于这些约束条件决定是否显示图像

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

答案 1 :(得分:1)

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

一些属性是方向,大小,填充,devicePixelRatio等。

示例:

MediaQuery.of(context).orientation

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