本文档概述了使用 对话框目标 如何为管理回退堆栈引入独特考虑因素。
概述
回退堆栈的顶部只能存在一个或多个对话框目标。这是因为,当用户导航到非对话框目标时,NavController
会自动将所有对话框目标从堆栈顶部弹出。这确保当前目标始终完全可见,覆盖回退堆栈上的其他目标。
示例
如果回退堆栈仅包含 托管目标,这些目标会填充导航主机,并且用户导航到对话框目标,则回退堆栈可能与图 2 类似。
如果用户然后导航到另一个对话框目标,则该目标将添加到回退堆栈的顶部,如图 3 所示。
如果用户然后导航到非浮动目标,则在导航到新目标之前,将首先从回退堆栈顶部弹出任何对话框目标,如图 4 所示。