Flutter 中可以使用 GlobalKey 来获取 Widget 的尺寸和位置。
首先,在要获取尺寸和位置的 Widget 上设置 GlobalKey:
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey();
Scaffold(
key: _scaffoldKey,
...
)
然后,可以使用 GlobalKey 的 currentContext 属性来获取 Widget 的 BuildContext,从而获取 Widget 的尺寸和位置:
final RenderBox renderBox = _scaffoldKey.currentContext.findRenderObject() as RenderBox;
final size = renderBox.size; // 尺寸
final position = renderBox.localToGlobal(Offset.zero); // 位置
其中,localToGlobal 方法可以将 Widget 的本地坐标转换为全局坐标。如果需要获取子 Widget 的尺寸和位置,可以使用 GlobalKey 和子 Widget 的 GlobalKey 实现。