实现屏幕导航

应用通常会呈现许多不同的界面,每个界面可能会使用不同的模板,用户可以在与界面交互时浏览这些界面。

ScreenManager 类提供了一个屏幕堆栈,您可以使用它来推送屏幕,当用户选择车载显示屏上的返回按钮或使用某些汽车中提供的硬件返回按钮时,可以自动弹出这些屏幕。

此代码展示了如何向消息模板添加返回操作,以及在用户选择新屏幕时推入该屏幕的操作:

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();

Action.BACK 对象是自动调用 ScreenManager.pop 的标准 Action。可通过使用 CarContext 提供的 OnBackPressedDispatcher 实例来替换此行为。

为了促进安全驾驶,屏幕堆栈最多只能包含五个屏幕。如需了解详情,请参阅模板限制