[kotlin] Navigation 사용법
Android 앱에서 화면 간의 이동을 처리하는 Navigation은 사용자 경험을 향상시키고 코드를 더 효율적으로 관리할 수 있습니다. Kotlin으로 Navigation을 구현하는 방법을 알아보겠습니다.
Navigation Component 설정
먼저, build.gradle 파일에 Navigation Component를 추가합니다.
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
nav_version
은 사용하는 Navigation 버전에 맞게 설정합니다.
NavGraph 생성
다음으로, NavGraph를 생성하여 앱 내에서 화면 간의 이동을 정의합니다.
<?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"
app:startDestination="@id/firstFragment">
<fragment
android:id="@+id/firstFragment"
android:name="com.example.FirstFragment"
android:label="fragment_first"
tools:layout="@layout/fragment_first" />
<fragment
android:id="@+id/secondFragment"
android:name="com.example.SecondFragment"
android:label="fragment_second"
tools:layout="@layout/fragment_second" />
<action
android:id="@+id/action_firstFragment_to_secondFragment"
app:destination="@id/secondFragment" />
</navigation>
NavGraph를 작성한 후, 이를 XML 파일로 저장하고 앱 리소스에 추가합니다.
Navigation Host 추가
Navigation을 사용할 화면에 Navigation Host를 추가합니다.
<fragment
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" />
이벤트 처리
이제 Kotlin 코드에서 Navigation을 처리할 수 있습니다.
val navController = findNavController(R.id.navHostFragment)
button.setOnClickListener {
navController.navigate(R.id.action_firstFragment_to_secondFragment)
}
위 예시에서는 버튼 클릭 시 action_firstFragment_to_secondFragment
로 정의된 이벤트에 따라 두 번째 화면으로 이동합니다.
이렇게 Kotlin으로 Navigation을 구현할 수 있으며, 사용자 경험을 향상시키고 화면 간의 이동을 효율적으로 관리할 수 있습니다.
더 자세한 내용은 Android 공식 문서를 참고하시기 바랍니다.