탐색 컨트롤러는 탐색의 주요 개념 중 하나입니다. 탐색 그래프를 보유하며 앱이 그래프의 대상 간에 이동할 수 있는 메서드를 노출합니다.
탐색 구성요소를 사용할 때 NavController
클래스를 사용하여 탐색 컨트롤러를 만듭니다. NavController
는 중앙 탐색 API입니다. 사용자가 방문한 대상을 추적하고 사용자가 목적지 간에 이동할 수 있도록 합니다. 이 가이드에서는 앱에서 NavController
를 만드는 방법을 보여줍니다.
NavController
에 탐색 그래프를 추가하는 방법에 관한 자세한 내용은 탐색 그래프 설계를 참고하세요. NavController
는 그래프의 대상으로 이동하는 몇 가지 다른 방법을 제공합니다. 자세한 내용은 대상으로 이동을 참고하세요.
Compose
Jetpack Compose를 사용할 때 NavController
를 만들려면 rememberNavController()
를 호출하세요.
val navController = rememberNavController()
컴포저블 계층 구조에서 높은 위치에 NavController
를 만들어야 합니다. 참조해야 하는 모든 컴포저블이 이를 실행할 수 있을 만큼 충분히 높아야 합니다.
이렇게 하면 화면 외부의 컴포저블을 업데이트하기 위한 단일 정보 소스로 NavController
를 사용할 수 있습니다. 이는 상태 호이스팅 원칙을 따릅니다.
뷰
뷰 UI 프레임워크를 사용하는 경우 컨텍스트에 따라 다음 메서드 중 하나를 사용하여 NavController를 검색할 수 있습니다.
Kotlin:
Java:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
일반적으로 먼저 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
를 사용하여 탐색 그래프에서 대상 간에 이동하는 방법을 자세히 설명하는 가이드입니다.