Flutter 获取 widget 的实际宽高

5 min read

使用 LayoutBuilderMediaQuery.of,该方法对于多种屏幕大小都有很好的兼容性。

此代码片段显示了如何使用 LayoutBuilderMediaQuery.of 获取 widget 的实际宽度和高度:

@override
Widget build(BuildContext context) {
  return LayoutBuilder(
    builder: (context, constraints) {
      final height = constraints.maxHeight;
      final width = constraints.maxWidth;

      return Container(
        height: height,
        width: width,
        child: ...,
      );
    },
  );
}

constraints.maxHeightconstraints.maxWidth 分别表示当前 widget 的实际高度和宽度。