import 'package:flutter/material.dart'; typedef OnWidgetSizeChange = void Function(Size size); class MeasureSize extends StatefulWidget { final Widget child; final OnWidgetSizeChange onChange; const MeasureSize({ Key? key, required this.onChange, required this.child, }) : super(key: key); @override _MeasureSizeState createState() => _MeasureSizeState(); } class _MeasureSizeState extends State { @override Widget build(BuildContext context) { WidgetsBinding.instance.addPostFrameCallback((_) { final size = context.size; if (size != null) widget.onChange(size); }); return widget.child; } }