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