Implémenter la navigation à l'écran

Les applications présentent souvent plusieurs écrans différents, chacun pouvant utiliser des modèles différents que l'utilisateur peut parcourir 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 fermé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 pour afficher un nouvel écran lorsque l'utilisateur le sélectionne :

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 un Action standard qui appelle automatiquement ScreenManager.pop. Ce comportement peut être remplacé à l'aide de l'instance OnBackPressedDispatcher 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 Restrictions concernant les modèles.