實作畫面導覽

應用程式通常會顯示多個不同畫面,每個畫面可能使用不同的範本,使用者與介面互動時可瀏覽這些畫面。

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。您可以使用 CarContext 提供的 OnBackPressedDispatcher 例項覆寫這項行為。

為確保行車安全,螢幕堆疊最多只能包含五個畫面。詳情請參閱「範本限制」。