title: This Overlay widget cannot be marked as needing to build because the framework is already in the process of building widgets
body: <p>I have got follow app:</p>
  
  <pre><code>class MyAppState extends State&lt;MyApp&gt;
  {
    TenderApiProvider _tenderApiProvider = TenderApiProvider();
  
    Future init() async {
       await _tenderApiProvider.getToken();  
    }
    MyAppState()
    {
      init();
    }
  
    @override
    Widget build(BuildContext context) {
      return MultiProvider(
        providers: [
          ChangeNotifierProvider(builder: (_) =&gt; _tenderApiProvider),
        ],
        child: MaterialApp(
          title: "My App",
          routes: {
            '/': (context) =&gt; HomePage(),
            '/splash-screen': (context) =&gt; SplashScreen(),
            '/result_table': (context) =&gt; ResultDataTable(),
          }
  
        ),
      );
    }
  
  }
  </code></pre>
  
  <p>I need to draw firstly <code>SplashScreen</code> current code show at start <code>HomePage</code>.</p>
  
  <p>In splash-screen I need to switch to HomePage after all data loaded. Here it's code:</p>
  
  <pre><code>  Widget build(BuildContext context) {
      TenderApiProvider apiProv = Provider.of&lt;TenderApiProvider&gt;(context);
      return StreamBuilder(
          stream: apiProv.resultController,
          builder: (BuildContext context, AsyncSnapshot snapshot) {   
          //...
          if(apiProv.apiKeyLoadingState ==  ApiKeyLoadingState.Done &amp;&amp; apiProv.regionsLoadingState == RegionsLoadingState.Done)
          {
           Navigator.of(context).pushNamed("/"); // Should it be placed in Build??
          }
          });
      }
  </code></pre>
  
  <p>Could you help me and show to to draw at app start <code>SplashScreen</code> and then switch from it to <code>HomePage</code>?</p>