Bildschirmnavigation implementieren

Apps haben oft mehrere verschiedene Bildschirme, für die jeweils unterschiedliche Vorlagen verwendet werden können. Der Nutzer kann durch die Benutzeroberfläche navigieren, während er mit ihr interagiert.

Die Klasse ScreenManager bietet einen Bildschirmstapel, mit dem Sie Bildschirme einfügen können, die automatisch entfernt werden können, wenn der Nutzer auf dem Autobildschirm die Schaltfläche Zurück auswählt oder die in einigen Autos verfügbare Hardware-Schaltfläche Zurück verwendet.

In diesem Code wird gezeigt, wie Sie einer Nachrichtenvorlage eine „Zurück“-Aktion sowie eine Aktion zum Aufrufen eines neuen Bildschirms hinzufügen, wenn der Nutzer sie auswählt:

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

Das Action.BACK-Objekt ist ein Standard-Action, das automatisch ScreenManager.pop aufruft. Dieses Verhalten kann mit der OnBackPressedDispatcher-Instanz überschrieben werden, die über CarContext verfügbar ist.

Um sicheres Fahren zu fördern, darf der Bildschirmstapel aus maximal fünf Bildschirmen bestehen. Weitere Informationen finden Sie unter Vorlageneinschränkungen.