我有一个flutter web应用程序,它适用于所有屏幕大小。我指定了一个变量";宽度";以获得屏幕宽度,并在此基础上构建整个应用程序。
当我放大或缩小chrome时,它要求我刷新页面以获得所需的大小。除非我刷新小部件,否则不要调整大小。
我想要一个类似触发器的功能,如果宽度发生变化,应用程序必须重建
我该如何做到这一点
您可以使用LayoutBuilder
来实现这一点。此小部件有一个生成器参数,该参数在布局约束更改时被调用。
LayoutBuilder(
builder: (context, constraints) {
},
)
这些限制提供了一些选项,使您的应用程序能够了解的可用空间
constraints.maxWidth; // get maximum available width
constraints.maxHeight; // get maximum available height
constraints.minWidth; // get minimum available width
constraints.minHeight; // get minimum available height
这些可用于根据可用空间有条件地更改布局,并在布局时进行重建。
或者,您可以使用简单的MediaQuery
。你可以得到宽度:
MediaQuery.of(context).size.width;
高度:
MediaQuery.of(context).size.height;
但是,这些调用必须在build
方法中完成,以便每次重建时大小都会发生变化。