我有一个Expanded
小部件,其中有一个Image.asset(...)
是孩子。
在小型手机上没有足够的空间,并且图像按比例缩小。由于无论如何它仅用于糖果,如果没有至少Image
可用,我想隐藏/不显示height >= 100.0
。
如何在Flutter中完成此任务?有没有办法获取父窗口小部件的大小?
答案 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