Приложения часто отображают несколько разных экранов, каждый из которых может использовать различные шаблоны, по которым пользователь может перемещаться, взаимодействуя с интерфейсом.
Класс ScreenManager предоставляет стек экранов, который можно использовать для автоматического отображения экранов, появляющихся при нажатии пользователем кнопки «Назад» на экране автомобиля или при использовании аппаратной кнопки «Назад» , доступной в некоторых автомобилях.
Этот код демонстрирует, как добавить действие «Назад» в шаблон сообщения, а также действие для перехода на новый экран при выборе пользователем:
Котлин
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();
Объект Action.BACK — это стандартное Action , которое автоматически вызывает ScreenManager.pop . Это поведение можно переопределить, используя экземпляр OnBackPressedDispatcher доступный в CarContext .
Для обеспечения безопасного вождения количество экранов в блоке не должно превышать пяти. Подробнее см. в разделе «Ограничения шаблона» .