Implementar a navegação na tela

Os apps costumam apresentar uma série de 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 a 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 de retorno 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:

val header = Header.Builder()
    .setStartHeaderAction(Action.BACK)
    .build()

val template = MessageTemplate.Builder("Hello world!")
    .setHeader(header)
    .addAction(
        Action.Builder()
            .setTitle("Next screen")
            .setOnClickListener { screenManager.push(NextScreen(carContext)) }
            .build()
    )
    .build()

O Action.BACK objeto é uma Action padrão que automaticamente invoca ScreenManager.pop. Esse comportamento pode ser modificado usando a OnBackPressedDispatcher instância 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.