Implémenter la navigation à l'écran

Les applications présentent souvent plusieurs écrans différents, chacun pouvant utiliser des modèles différents dans lesquels l'utilisateur peut naviguer lorsqu'il interagit avec l'interface.

La classe ScreenManager fournit une pile d'écrans que vous pouvez utiliser pour envoyer des écrans qui peuvent être supprimés automatiquement lorsque l'utilisateur sélectionne un bouton Retour sur l'écran de la voiture ou utilise le bouton Retour matériel disponible dans certaines voitures.

Ce code montre comment ajouter une action de retour à un modèle de message, ainsi qu'une action permettant d'envoyer un nouvel écran lorsqu'il est sélectionné par l'utilisateur :

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'objet Action.BACK est une Action standard qui appelle automatiquement ScreenManager.pop. Ce comportement peut être remplacé à l'aide de l' OnBackPressedDispatcher instance disponible à partir de CarContext.

Pour favoriser une conduite sûre, la pile d'écrans ne peut pas comporter plus de cinq écrans. Pour en savoir plus, consultez la section Restrictions concernant les modèles.