Aplikacje często wyświetlają wiele różnych ekranów, z których każdy może korzystać z innych szablonów. Użytkownik może przechodzić między nimi, wchodząc w interakcję z interfejsem.
Klasa ScreenManager udostępnia stos ekranów, których można używać do wyświetlania ekranów, które można automatycznie zamykać, gdy użytkownik wybierze przycisk Wstecz na ekranie samochodu lub użyje przycisku sprzętowego Wstecz dostępnego w niektórych samochodach.
Ten kod pokazuje, jak dodać do szablonu wiadomości działanie „Wstecz” oraz działanie, które po wybraniu przez użytkownika spowoduje wyświetlenie nowego ekranu:
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();
Obiekt Action.BACK to standardowy obiekt Action, który automatycznie wywołuje ScreenManager.pop. To zachowanie można zastąpić za pomocą instancji OnBackPressedDispatcher dostępnej w CarContext.
Aby promować bezpieczną jazdę, stos ekranów może składać się z maksymalnie 5 ekranów. Więcej informacji znajdziesz w sekcji Ograniczenia dotyczące szablonów.