Le app spesso presentano diverse schermate, ognuna delle quali potrebbe utilizzare modelli diversi in cui l'utente può navigare mentre interagisce con l'interfaccia.
La classe ScreenManager fornisce uno stack di schermate che puoi utilizzare per inserire schermate
che possono essere rimosse automaticamente quando l'utente seleziona un pulsante Indietro sullo
schermo dell'auto o utilizza il pulsante hardware Indietro disponibile in alcune auto.
Questo codice mostra come aggiungere un'azione Indietro a un modello di messaggio e un'azione per visualizzare una nuova schermata quando viene selezionata dall'utente:
Kotlin
val template = MessageTemplate.Builder("Hello world!")
.setHeaderAction(Action.BACK)
.addAction(
Action.Builder()
.setTitle("Next screen")
.setOnClickListener { screenManager.push(NextScreen(carContext)) }
.build())
.build()
Java
MessageTemplate template = new MessageTemplate.Builder("Hello world!")
.setHeaderAction(Action.BACK)
.addAction(
new Action.Builder()
.setTitle("Next screen")
.setOnClickListener(
() -> getScreenManager().push(new NextScreen(getCarContext())))
.build())
.build();
L'oggetto Action.BACK è un Action standard che richiama automaticamente
ScreenManager.pop. Questo comportamento può essere sostituito utilizzando l'istanza
OnBackPressedDispatcher disponibile da CarContext.
Per promuovere una guida sicura, lo stack di schermate non può contenere più di cinque schermate. Per saperne di più, consulta Limitazioni dei modelli.