对话框目标

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

概览

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

目标可以是托管目标Activity 目标对话框目标

示例

如果返回堆栈仅由填满导航主机的托管目标组成,并且用户导航到对话框目标,则返回堆栈可能类似于图 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 目标已弹出,并添加了新目标。