【Flutter小记】LayoutBuilder 组件

65 阅读1分钟

LayoutBuilder 是一个widget,你可以通过它获取其parent widget的约束(例如屏幕的宽度和高度)并对其子widget进行定制。

以下是示例:

LayoutBuilder(
    builder: (BuildContext context, BoxConstraints constraints) {
    if (constraints.maxWidth > 1200) {
      return largeScreen();
    } else {
      return smallScreen();
    }
  },
)

LayoutBuilderbuilder函数是它的核心,该函数有两个参数:BuildContextBoxConstraintsBoxConstraints对象包含了最大和最小的高度和宽度信息。

该示例中的LayoutBuilder 会返回一个不同的widget,这取决于其父widget的宽度。如果最大宽度大于1200像素,我们就可以判定为该应用是在desktop上打开的它将显示largeScreen(为桌面适配的布局),否则将显示smallScreen(为手机适配的布局)。

祝编程愉快!