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 :

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

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.