В приложениях часто есть несколько экранов, на каждом из которых может использоваться свой шаблон. Пользователь переходит между ними, взаимодействуя с интерфейсом.
Класс 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.
Чтобы не отвлекать водителя, в стеке может быть не более пяти экранов. Подробнее об ограничениях на использование шаблонов…