[kotlin] 코틀린과 Android Jetpack의 Navigation 구성 요소를 이용하여 화면 간 전환하는 방법은?

안녕하세요! 이번에는 코틀린과 Android Jetpack Navigation 구성 요소를 사용하여 화면 간 전환하는 방법에 대해 알아보겠습니다.

1. Navigation 구성 요소 추가

먼저, 프로젝트의 build.gradle 파일에 아래의 의존성을 추가하여 Navigation 구성 요소를 프로젝트에 포함시킵니다.

dependencies {
    def nav_version = "2.3.5"
    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
}

2. Navigation 그래프 생성

다음으로, res 디렉토리 내에 navigation 디렉토리를 생성하고, nav_graph.xml 파일을 만들어 Navigation 그래프를 정의합니다.

<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/nav_graph"
    app:startDestination="@id/startingFragment">

    <fragment
        android:id="@+id/startingFragment"
        android:name="com.example.StartingFragment"
        tools:layout="@layout/fragment_starting">
        <action
            android:id="@+id/action_startingFragment_to_destinationFragment"
            app:destination="@id/destinationFragment" />
    </fragment>

    <fragment
        android:id="@+id/destinationFragment"
        android:name="com.example.DestinationFragment"
        android:label="Destination"
        tools:layout="@layout/fragment_destination" />

</navigation>

위의 예제에서는 startingFragment에서 destinationFragment로 전환하는 액션을 정의했습니다.

3. Navigation 호스트 추가

이제 Activity 레이아웃 파일에 <fragment>를 추가하여 Navigation 호스트를 정의합니다.

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

4. 화면 간 전환 실행

화면 간 전환은 Fragment에서 findNavController().navigate() 메서드를 사용하여 실행할 수 있습니다.

// Fragment 내에서 화면 전환 실행
button.setOnClickListener {
    findNavController().navigate(R.id.action_startingFragment_to_destinationFragment)
}

이렇게하면 코틀린 및 Android Jetpack Navigation 구성 요소를 사용하여 화면 간 전환을 쉽게 구현할 수 있습니다.

더 많은 자세한 내용은 Android Developers 공식 문서를 참고하시기 바랍니다.