ViewStacks может быть делом дьявола, когда дело доходит до создания / удаления политик и управления состоянием. У нас были всевозможные проблемы, когда мы разрабатывали fiat ecoDrive и примерно на 3/4, хотя мы все очень против ViewStacks для управления состоянием просмотра в нашем приложении.
Однако ... неплохо было бы сначала установить для creationPolicy значение ContainerCreationPolicy.NONE. Таким образом, вы сможете контролировать, когда создавать какие-либо панели в вашем ViewStack. Тогда я подумал бы, что вам понадобится какая-то логика, чтобы при изменении ViewStack панели она удаляла или сбрасывала ту, на которой вы были.
Еще одна жизнеспособная альтернатива - использовать состояния просмотра. Имейте базовое состояние, которое действует как основной контейнер, а затем простое состояние для каждого из ваших разделов. Таким образом, когда вы переключаетесь в новое состояние, старое состояние удаляется в порядке, обратном тому, как оно было создано. Вы должны быть дисциплинированными с состояниями, поскольку они могут стать действительно сложными и запутанными, когда они начнут становиться вложенными. Если вы сохраните это простым, он может работать как вам нужно.