Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
В этом документе описывается, как использование пунктов назначения диалогов может внести уникальные соображения относительно того, как вам нужно управлять своим стеком.
Обзор
Одно или несколько пунктов назначения диалога могут существовать только в верхней части задней стопки. Это связано с тем, что когда пользователь переходит к месту назначения, которое не является местом назначения диалога, NavController автоматически извлекает все места назначения диалога из вершины стека. Это гарантирует, что текущий пункт назначения всегда будет полностью виден среди других пунктов назначения в заднем стеке.
Если задний стек состоит исключительно из размещенных пунктов назначения , которые заполняют узел навигации, а пользователь переходит к месту назначения диалога, то задний стек может выглядеть примерно так, как показано на рисунке 2:
Рисунок 2. Задний стек с пунктом назначения диалога вверху.
Если затем пользователь переходит к другому пункту назначения диалога, он добавляется в начало стека, как показано на рисунке 3:
Рисунок 3. Задний стек с двумя пунктами назначения Dialog наверху.
Если затем пользователь переходит к неплавающему пункту назначения, все пункты назначения диалога сначала извлекаются из верхней части стека, прежде чем переходить к новому пункту назначения, как показано на рисунке 4:
Рис. 4. Пункты назначения Dialog отображаются и добавляется новый пункт назначения.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Dialog destinations\n\nThis document outlines how the use of [dialog destinations](/guide/navigation/design) can introduce\nunique considerations for how you need to manage your back stack.\n\nOverview\n--------\n\nOne or more dialog destinations can only exist on the top of the back stack.\nThis is because when the user navigates to a destination that is not a dialog\ndestination, the `NavController` automatically pops all dialog destinations off\nthe top of the stack. This ensures that the current destination is always fully\nvisible over other destinations on the back stack.\n\nDestinations can be either [hosted destinations](/guide/navigation/design), [activity\ndestinations](/guide/navigation/design/activity-destinations), or [dialog destination](/guide/navigation/design/dialog-destinations).\n| **Note:** Dialog destinations implement the [`FloatingWindow`](/reference/androidx/navigation/FloatingWindow) interface. As such, they overlay other destinations on the back stack.\n\nExample\n-------\n\nIf the back stack consists solely of [hosted destinations](/guide/navigation/design)\nthat fill the navigation host, and the user navigates to a dialog destination,\nthen the back stack might look similar to figure 2:\n**Figure 2.** A back stack with a dialog destination on top.\n\nIf the user then navigates to another dialog destination, it is then added to\nthe top of the back stack, as shown in figure 3:\n**Figure 3.** A back stack with two `Dialog` destinations on top.\n\nIf the user then navigates to a non-floating destination, any dialog\ndestinations are first popped from the top of the back stack before navigating\nto the new destination, as shown in figure 4:\n**Figure 4.** The `Dialog` destinations are popped, and the new destination is added."]]