Os apps costumam apresentar várias telas diferentes, cada uma possivelmente usando modelos diferentes em que o usuário pode navegar enquanto interage com a interface.
A classe ScreenManager fornece uma pilha de tela que pode ser usada para enviar telas
que podem ser abertas automaticamente quando o usuário seleciona um botão Voltar na
tela do carro ou usa o botão Voltar do hardware disponível em alguns carros.
Este código mostra como adicionar uma ação de retorno a um modelo de mensagem, bem como uma ação para abrir uma nova tela quando selecionada pelo usuário:
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();
O objeto Action.BACK é um Action padrão que invoca automaticamente
ScreenManager.pop. Esse comportamento pode ser substituído usando a
instância OnBackPressedDispatcher disponível em CarContext.
Para promover uma direção segura, a pilha de tela pode ter no máximo cinco telas. Para saber mais, consulte Restrições de modelo.