I am new to Flutter and am trying to find out how to achieve something that I have done with web programming, namely to have an app that has several 'areas' that can all be 'live/current' at the same time. Imagine an app that has 4 'areas'. Each of the 4 areas has a 'start' screen that is typically a list of items within that area. The user can view the details of a list item, or create a new list item, using a secondary 'child' screen for that area. Each of the 4 'area' screens also includes a drawer, for switching the 'current view' to a specific area. The notion is: The user can go to an area, scroll the list, filter the list, etc. They then can ask the drawer to go to a different area, where they can perform similar actions on that screen. They then should be able to use the drawer to [re] go to the first area, or go to any other area they want, and, when they get there, the 'contents' (data) of that screen should be exactly as it was before they left that screen. Note that if they 'drill into' a list item, or create a new item, they have no access to the 'area drawer' and can only 'go back' to the list screen of that area.
In web programming, each 'area' would be a div, and would all 'live' on a single page. A drawer element would simply hide and show each of the divs as the user wanted, with each of them remaining 'untouched' while hidden.
So, the question is: How to achieve something like this in Flutter? I am slowly getting to understand the 'widget tree' thing, but, as 'screens' (which are really just widgets) are 'pushed' into the tree, what happens to the screen that was currently showing? I understand the nav stack, but what happens to the previous screen, its widgets and its data (memory)? Do they get 'erased' from the tree? From previous questions I've seen, I think the answer is 'yes'. Once a 'pushed off' screen is 're-pushed' to, it begins its life all over again, meaning it has to get data, scroll it, filter it, render it, etc.. all over again.
I guess what I am wondering is, can the app have multiple 'areas' (screens) in memory, in the tree, at the same time, but only one being 'seen' at a time, and, each with its own 'child-screen navigation'. I am sure I am approaching things in the 'wrong' way, but each toolkit/programming system seems to approach this issue in different ways and I am just not sure how to do it with Flutter. I understand I can keep all of the 'data' of each area's 'start' page in memory (at the app level) and could thus re-build each area from that data (without going to the db). I've also heard some folks discuss 'linear navigation' (versus hierarchical?) but do not know much about that.
Thanks for your help.