title: Communication with underlying screen/route in flutter
body: <p>I have a flutter app with two screens (routes). From the first one a user navigates to a second (via <code>Navigator.push</code>). On a second screen a user does some actions. And these actions should affect some widgets' states on a first screen. Of course while user is doing actions on the second screen the first one is not visible, but calling <code>Navigator.pop</code> should show the first screen already updated.</p>
  
  <p>Is there any mechanism which allows communication between currently visible and underlying routes? (not sure, but are underlying routes' widgets/states even kept in memory after <code>Navigator.push</code> was called?)</p>
  
  <p>I have some ideas, but they look like not a good practice.</p>
  
  <ul>
  <li>Do not use navigator and have a single stateful root widget which is used as a communication point between others. But this will require boilerplate reimplementation of <code>Navigator</code></li>
  <li>Create a global variable for the same purpose. I'm not sure about how would it work with flutter widgets lifecycle because as a result, some widgets should depend on it and moreover wouldn't get updates if I don't implement any kind of <code>Listener</code> there (which would become invalid when some widgets are destroyet, i.e. it's also a lot of boilerplate). </li>
  </ul>
  
  <p>I suspect there should be a better way of doing this.
  Unfortunately I can't redesign the app to avoid using <code>Navigator</code>.</p>
  
  <p>Thanks for help.</p>