Spesso le app presentano una serie di schermate diverse, ognuna delle quali potrebbe utilizzare modelli diversi su 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, nonché un'azione per inserire 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'
OnBackPressedDispatcher istanza disponibile da CarContext.
Per promuovere una guida sicura, lo stack di schermate può contenere al massimo cinque schermate. Per scoprire di più, vedi Restrizioni dei modelli.