탐색 컨트롤러 만들기

탐색 컨트롤러는 탐색의 주요 개념 중 하나입니다. 탐색 그래프를 보유하며 앱이 그래프의 대상 간에 이동할 수 있는 메서드를 노출합니다.

탐색 구성요소를 사용할 때 NavController 클래스를 사용하여 탐색 컨트롤러를 만듭니다. NavController는 중앙 탐색 API입니다. 사용자가 방문한 대상을 추적하고 사용자가 목적지 간에 이동할 수 있도록 합니다. 이 가이드에서는 앱에서 NavController를 만드는 방법을 보여줍니다.

NavController에 탐색 그래프를 추가하는 방법에 관한 자세한 내용은 탐색 그래프 설계를 참고하세요. NavController는 그래프의 대상으로 이동하는 몇 가지 다른 방법을 제공합니다. 자세한 내용은 대상으로 이동을 참고하세요.

Compose

Jetpack Compose를 사용할 때 NavController를 만들려면 rememberNavController()를 호출하세요.

val navController = rememberNavController()

컴포저블 계층 구조에서 높은 위치에 NavController를 만들어야 합니다. 참조해야 하는 모든 컴포저블이 이를 실행할 수 있을 만큼 충분히 높아야 합니다.

이렇게 하면 화면 외부의 컴포저블을 업데이트하기 위한 단일 정보 소스로 NavController를 사용할 수 있습니다. 이는 상태 호이스팅 원칙을 따릅니다.

뷰 UI 프레임워크를 사용하는 경우 컨텍스트에 따라 다음 메서드 중 하나를 사용하여 NavController를 검색할 수 있습니다.

Kotlin:

Java:

일반적으로 먼저 NavHostFragment를 가져온 후 프래그먼트에서 NavController를 검색합니다. 다음 스니펫은 이 작업을 보여줍니다.

Kotlin

val navHostFragment =
    supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController

Java

NavHostFragment navHostFragment =
    (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();

추가 자료

  • 탐색 그래프 설계: 앱의 모든 대상이 포함된 NavController에 그래프를 추가하는 방법을 자세히 설명하는 가이드입니다.
  • 대상으로 이동: NavController를 사용하여 탐색 그래프에서 대상 간에 이동하는 방법을 자세히 설명하는 가이드입니다.