화면 내비게이션 구현

앱에서는 사용자가 인터페이스와 상호작용할 때 탐색할 수 있는 여러 화면을 표시하는 경우가 많습니다(각 화면은 다양한 템플릿을 사용할 수 있음).

ScreenManager 클래스는 자동차 화면에서 사용자가 뒤로 버튼을 선택하거나 일부 자동차에 제공되는 하드웨어 뒤로 버튼을 사용할 때 자동으로 표시될 수 있는 화면을 푸시하는 데 사용할 수 있는 화면 스택을 제공합니다.

이 코드는 메시지 템플릿에 뒤로 작업을 추가하는 방법과 사용자가 선택할 때 새 화면을 푸시하는 작업을 보여 줍니다.

Kotlin

val template = MessageTemplate.Builder("Hello world!")
     .setHeaderAction(Action.BACK)
     .addAction(
         Action.Builder()
             .setTitle("Next screen")
             .setOnClickListener { screenManager.push(NextScreen(carContext)) }
             .build())
     .build()

자바

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 인스턴스를 사용하여 재정의할 수 있습니다.

안전 운전을 장려하기 위해 화면 스택은 5개 이하의 화면으로 구성될 수 있습니다. 자세한 내용은 템플릿 제한사항을 참고하세요.