최대 1 분 소요

[Today, What I Studied] ​ 오늘은 공부한 내용을 바깥에
  • 문제해결력 기르기
  • => 프로그래머스 LV1, LV2 한 달 안에 다 풀기(60 left)
    1. NavGraph : navigation destination의 연결관계를 정의한 자료구조

      1. Destination

        ⇒ a single or a group of composables (User가 보는 화면)

      2. Routes

        1. unique identifie로, destination에 대응
        2. using enum class → 인수 설정시, property처럼 접근 가능
        enum class( val num: Int ){
        SUN ( 10 ),
        MOON( 20 )
        }
        
    2. NavHost

      ⇒ 보여질 화면(navigation destination)을 관리하는 container

      //navController를 선언
      navController: NavHostController = rememberNavController()
         
      ...
      // navHost는 1. navController, 2. startDestination, 3. contents를 인수로 받는다.
      NavHost(
      	navController = navController,
      	startDestination = //route의 enum / 초기 화면 설정
      	modifier = Modifier
      ){
      	composable(
      		route = //route의enum(destination)
      		){
      			//컴포저블 함수들...
      		}
      }
      
    3. NavController

      => 다음 메서드를 제공하여, navigation을 담당

      1. destination 간의 이동을 위한 메서드 → navigate()
      2. deep links 조작 메서드
      3. back stack 관리 메서드

      ⇒ navController를 모든 컴포저블에 전달하지 않고, onClick()메서드로 특정 기능만을 전달

      ​ → UI와의 분기(navigation은 navHost가 다 처리!)

      navigate(route enum) -> 그곳으로 이동
         
      -> Screen Change + Back Stack push
      

      [ Back Stack ]

      ⇒ 현재(가장 위의 destination)와 이전의 destination들을 저장

      → navigateUp()을 사용하여 최상위를 pop()

    태그:

    카테고리:

    업데이트:

    댓글남기기