The “root view” is what I’m calling the view which you entered the history stack at. For example, let’s say we have a side menu with two links in the left menu (View A and View B), and the initial view that loaded was View A. At View A, the menu icon shows in the header, and there’s no view to go back to, because it’s the first view.
From within View A, let’s say I click to go to View C. At View C, the menu icon should be hidden, the side menu should not be able to be opened, and the back arrow shows up which would link back to View A. This is all how native apps usually work and is our recommendation. At View C, we’re no longer at the root, but instead we’re one level into the history stack. If I were to click the back arrow, we’d be back to View A, and again at the root, which shows the menu icon again, and no back button.
So now let’s say I’m at View A, and want to go to View B which is another link in the left menu. Traditionally that would be navigating forward, and we’d then have a back button to go to View A and a menu icon, which isn’t a good UI. However, what we’re doing is saying that View B should still be considered the “root” of the side menus, even though View A was before it. But because we got to View B from the side menu, we want to View B to still have the menu icon, and not have a back button (because you can still get back to View A using the side menu).
Does this help explain it? Admittedly this is pretty confusing, but it’s commonly seen within native applications, and for good reason. But I’d like to improve our docs so it’s easier to understand, so any help explaining this would be appreciated. Thanks