Android Navigation

1502 단어 kotlinandroidandroid

들어가며

Navigaion은 Jetpack에 해당되는 내용으로 앱 내에서 조금 더 자유롭고 체계적인 이동을 돕는다. 공식문서에 의하면 Navigaion은 세가지로 구성되는데 첫번째는 모든 정보가 포함된 nav_graph로 .xml파일 형식이다. 갈수있는 경로가 포함된다. 두번째는 NavHost로 navigaion에서 대상을 표시하는 빈 컨테이너이고 세번째는 NavController로 NavHost에서 앱 탐색을 관리하는 객체로 이동을 관리한다.

Gradle

kotlin에 해당하는 내용까지를 기본으로하며 필요한 경우 더 이용할 수 있다.

dependencies {
  def nav_version = "2.3.2"
  
   // Kotlin
  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

  // Feature module Support
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:1.0.0-alpha04"
}

Navigation 그래프 만들기

res아래에 navigation이라는 폴더를 만들고 그 아래에 .xml파일을 만든다. 필요한 fragment들을 미리 만든 후 이미지 왼쪽상단에 추가버튼을 통해 필요한 fragment들을 추가한 후 흐름에 맞게 연결한다.(이때 찾아지지않는다면 build를 하고 다시 시도한다)

.kt파일에서 사용하기

이후 다음과 같은 형태로 사용한다. 이때 id는 미리 navigation_graph.xml파일에서 정의한 후 사용할 수 있다.

//화살표 방향으로 이동할 경우
view.findNavController().navigate(R.id.action_choosePreferFragment_to_userCheckFragment)

//이전 페이지로 돌아가고싶은경우
view.findNavController().popBackStack()

좋은 웹페이지 즐겨찾기