应用通常会呈现许多不同的屏幕,每个屏幕可能会利用不同的模板,用户可以在与界面交互时浏览这些屏幕。
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 对象是自动调用 ScreenManager.pop 的标准 Action。可通过使用
OnBackPressedDispatcher 实例来替换此行为,该实例可从 CarContext 获取。
为了促进安全驾驶,屏幕堆栈最多只能包含五个屏幕。如需了解详情,请参阅模板限制。