화면 간의 이동은 앱을 개발할 때에 핵심적인 내용이기 때문에 Navigation에 대해 다뤄보려고 한다 😇
navigation의 주요 구성 요소인 NavHost, NavController에 대해 알아보자!
✏️ NavHost
- 앱 내에서 경로(화면 간의 이동 구조)를 정의하는 컨테이너 역할
NavHost()
를 사용한다
NavHost(navController = navController, startDestination = "home") {
composable("home") {
HomeScreen()
}
composable("details") {
DetailsScreen()
}
}
✏️ NavController
- 화면 이동을 수행하는 핵심 컨트롤러
rememberNavController()
를 사용해 선언- 목적지 간의 이동을
navigate()
함수로 수행
val navController = rememberNavController()
화면 이동 예시:
navController.navigate("details")
navController.navigate("details/123") // Route: "details/{id}"
🧐 Backstack 관리도 NavController가 담당한다!
- navigateUp(): 현재 경로의 부모로 이동
navController.navigateUp()
- popBackStack(): 백스택에서 특정 경로를 제거하거나 뒤로 이동
navController.popBackStack()
✅ 마무리
- NavHost는 앱의 화면 간 이동 구조 정의
- NavController는 화면 간 이동과 백스택 관리
📌 참고 자료
'Android > Study' 카테고리의 다른 글
[Android] RecyclerView와 ViewHolder 패턴 (+ListVIew) (4) | 2025.02.05 |
---|---|
[Android] SQLite vs Room (3) | 2025.02.03 |
[Jetpack Compose] Scaffold 사용법 (1) | 2025.01.21 |
[Jetpack Compose] 위치 권한 요청 및 처리하기 (1) | 2025.01.15 |
[Jetpack Compose] remember와 mutableStateOf (2) | 2025.01.07 |