Cómo implementar la navegación en pantalla

A menudo, las apps presentan diferentes pantallas, cada cual con plantillas posiblemente distintas, que el usuario puede navegar, ya que interactúan con la interfaz.

La clase ScreenManager proporciona una pila de pantallas que puedes usar para enviar pantallas que se puedan mostrar automáticamente cuando el usuario seleccione un botón Atrás en la pantalla del automóvil o use el botón Atrás de hardware disponible en algunos automóviles.

En este código, se muestra cómo agregar una acción de regreso a una plantilla de mensajes y una acción para enviar una pantalla nueva cuando el usuario la seleccione:

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();

El objeto Action.BACK es un Action estándar que invoca automáticamente ScreenManager.pop. Este comportamiento se puede anular con la instancia OnBackPressedDispatcher disponible en CarContext.

Para promover la conducción segura, la pila de pantallas no puede tener más de cinco pantallas. Para obtener más información, consulta Restricciones de las plantillas.