ensureScreenSize static method
      
Future<void> 
ensureScreenSize([ 
    
- FlutterView? window,
- Duration duration = const Duration(milliseconds: 10)
Manually wait for window size to be initialized
Recommended to use before you need access window size
or in custom splash/bootstrap screen FutureBuilder
example:
...
ScreenUtil.init(context, ...);
...
  FutureBuilder(
    future: Future.wait([..., ensureScreenSize(), ...]),
    builder: (context, snapshot) {
      if (snapshot.hasData) return const HomeScreen();
      return Material(
        child: LayoutBuilder(
          ...
        ),
      );
    },
  )
Implementation
static Future<void> ensureScreenSize([
  ui.FlutterView? window,
  Duration duration = const Duration(milliseconds: 10),
]) async {
  final binding = WidgetsFlutterBinding.ensureInitialized();
  binding.deferFirstFrame();
  await Future.doWhile(() {
    if (window == null) {
      window = binding.platformDispatcher.implicitView;
    }
    if (window == null || window!.physicalSize.isEmpty) {
      return Future.delayed(duration, () => true);
    }
    return false;
  });
  binding.allowFirstFrame();
}