对话框目标

本文档概述了使用 对话框目标 如何为管理回退堆栈引入独特考虑因素。

概述

回退堆栈的顶部只能存在一个或多个对话框目标。这是因为,当用户导航到非对话框目标时,NavController 会自动将所有对话框目标从堆栈顶部弹出。这确保当前目标始终完全可见,覆盖回退堆栈上的其他目标。

目标可以是 托管目标活动目标对话框目标

示例

如果回退堆栈仅包含 托管目标,这些目标会填充导航主机,并且用户导航到对话框目标,则回退堆栈可能与图 2 类似。

a back stack with a dialog destination on top
图 2. 回退堆栈,顶部有一个对话框目标。

如果用户然后导航到另一个对话框目标,则该目标将添加到回退堆栈的顶部,如图 3 所示。

a back stack with two dialog destinations on top
图 3. 回退堆栈,顶部有两个 Dialog 目标。

如果用户然后导航到非浮动目标,则在导航到新目标之前,将首先从回退堆栈顶部弹出任何对话框目标,如图 4 所示。

the dialog destinations are popped, and the new destination
            is added
图 4. Dialog 目标弹出,新目标添加。