Destinazioni delle finestre di dialogo

Questo documento illustra come l'utilizzo delle destinazioni di dialogo possa introdurre considerazioni uniche su come è necessario gestire il back stack.

Panoramica

Una o più destinazioni delle finestre di dialogo possono esistere solo nella parte superiore dello stack posteriore. Questo perché, quando l'utente accede a una destinazione che non è quella delle finestre di dialogo, l'elemento NavController sposta automaticamente tutte le destinazioni delle finestre di dialogo fuori dall'elenco filtri. Ciò garantisce che la destinazione corrente sia sempre completamente visibile su altre destinazioni nello stack back.

Le destinazioni possono essere destinazioni ospitate, destinazioni delle attività o destinazioni di finestre di dialogo.

Esempio

Se il back stack è costituito esclusivamente da destinazioni ospitate che riempiono l'host di navigazione e l'utente accede a una destinazione della finestra di dialogo, lo stack di back potrebbe essere simile alla figura 2:

uno stack posteriore con una destinazione della finestra di dialogo in alto
Figura 2. Uno stack posteriore con una destinazione della finestra di dialogo in alto.

Se l'utente passa a un'altra destinazione della finestra di dialogo, questa viene aggiunta alla parte superiore dello stack posteriore, come mostrato nella figura 3:

uno stack posteriore con due destinazioni delle finestre di dialogo in alto
Figura 3. Una pila posteriore con due destinazioni Dialog sopra.

Se l'utente accede a una destinazione non floating, le destinazioni delle finestre di dialogo vengono prima estratte dalla parte superiore dello stack posteriore prima di passare alla nuova destinazione, come mostrato nella Figura 4:

vengono visualizzate le destinazioni delle finestre di dialogo e viene aggiunta la nuova destinazione
Figura 4. Le destinazioni Dialog vengono visualizzate automaticamente e la nuova destinazione viene aggiunta.