Developer Geek

Android Navigation NavHostFragment Component 본문

안드로이드/Jetpack

Android Navigation NavHostFragment Component

devGeek 2022. 7. 18. 07:54
반응형

Jetpack Navigation Component in Android

  • Navigation Architecture Component는 앱의 네비게이션 플로우를 가시화 하면서 네비게이션을 구현하는 것을 간단하게 한다.
  • Navigation Library를 사용하면 아래와 같은 장점이 있다.
  1. 프래그먼트 트랜잭션을 자동으로 핸들링해준다.
  2. 기본적으로 앞 뒤 이동 액션을 정확하게 핸들링해준다.
  3. 기본적으로 애니메이션과 전환 동작을 제공한다.
  4. 딥 링크는 최고 우선순위 작업으로 간주된다.
  5. 네비게이션 UI 패턴들(navigation drawers, bottom navigation)을 간편하게 구현할 수 있다.

개요

Navigation Component 3가지 구성요소

  1. Navigation Graph(New XML resource)
    • Navigation Graph 리소스는 네비게이션 관련 데이터를 한 곳에서 관리한다.
    • destination이라고 하는 앱의 모든 위치와 사용자가 앱을 통해 이동할 수 있는 경로를 포함한다.
  2. NavHostFragment(LayoutXML view)
    • NavHostFragment는 유니크한 위젯이다. 이 위젯은 layout에 포함할 수 있다.
    • 이것은 Navigation Graph에서 다양한 destination들을 보여준다.
  3. NavController(Kotlin/Java object)
    • NavControllerNavigation Graph에서 사용자의 위치를 추적할 수 있는 개체이다.
    • Navigation Graph를 통해 이동하면 NavHostFragment에서 destination 콘텐츠의 스왑이 조정된다.

NavHostFragment

NavHostFragment(LayoutXML view)

  • NavHostFragment는 유니크한 위젯이다. 이 위젯은 layout에 포함할 수 있다.
  • 이것은 Navigation Graph에서 다양한 destination들을 보여준다.

Example: activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/navHostFragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph" />

</LinearLayout>

https://developer.android.com/guide/navigation/navigation-getting-started?hl=ko

  • <FragmentContainerView>: desc...
    • app:defaultNavHost="true": 이 속성값을 true로 사용하게 되면 NavHostFragment가 시스템의 뒤로 가기 버튼을 가로채도록 한다.
    • navGraph: 이 속성값을 통해NavHostFragmentNavigation Graph(nav_graph)와 연결시켜준다.
반응형
Comments