LayoutBuilder
是一个widget,你可以通过它获取其parent widget的约束(例如屏幕的宽度和高度)并对其子widget进行定制。
以下是示例:
LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
if (constraints.maxWidth > 1200) {
return largeScreen();
} else {
return smallScreen();
}
},
)
LayoutBuilder
的builder
函数是它的核心,该函数有两个参数:BuildContext
和BoxConstraints
。BoxConstraints
对象包含了最大和最小的高度和宽度信息。
该示例中的LayoutBuilder
会返回一个不同的widget,这取决于其父widget的宽度。如果最大宽度大于1200像素,我们就可以判定为该应用是在desktop上打开的它将显示largeScreen
(为桌面适配的布局),否则将显示smallScreen
(为手机适配的布局)。
祝编程愉快!