Navigasi adalah interaksi yang memungkinkan pengguna melakukan navigasi di, ke dalam, dan kembali dari berbagai bagian konten dalam aplikasi Anda.
Komponen Navigasi Android Jetpack mencakup library Navigation, plugin Gradle Safe Args, dan alat untuk membantu Anda menerapkan navigasi aplikasi. Komponen Navigasi menangani berbagai kasus penggunaan navigasi, mulai dari klik tombol langsung hingga pola yang lebih kompleks, seperti panel aplikasi dan panel navigasi.
Konsep utama
Tabel berikut memberikan ringkasan tiga konsep utama dalam navigasi dan jenis utama yang Anda gunakan untuk menerapkannya.
Konsep |
Tujuan |
Jenis |
---|---|---|
Host |
Elemen UI yang berisi tujuan navigasi saat ini. Artinya, saat pengguna menavigasi aplikasi, aplikasi pada dasarnya menukar tujuan masuk dan keluar dari host navigasi. |
|
Grafik |
Struktur data yang mendefinisikan semua tujuan navigasi dalam aplikasi dan cara tujuan tersebut terhubung bersama. |
|
Pengontrol |
Koordinator pusat untuk mengelola navigasi antar-tujuan. Pengontrol menawarkan metode untuk bernavigasi di antara tujuan, menangani deep link, mengelola data sebelumnya, dan lainnya. |
Manfaat dan fitur
Komponen Navigation memberikan sejumlah manfaat dan fitur lainnya, termasuk yang berikut:
- Animasi dan transisi: Menyediakan resource standar untuk animasi dan transisi.
- Deep linking: Menerapkan dan menangani deep link yang mengarahkan pengguna langsung ke suatu tujuan.
- Pola UI: Mendukung pola seperti panel navigasi dan navigasi bawah dengan pekerjaan tambahan minimal.
- Keamanan jenis: Mencakup plugin Gradle Safe Args yang memberikan keamanan jenis saat menavigasi dan meneruskan data antar-tujuan.
- Dukungan ViewModel: Memungkinkan pencakupan
ViewModel
ke grafik navigasi untuk membagikan data terkait UI antar-tujuan grafik. - Transaksi fragmen: Mendukung dan menangani transaksi fragmen sepenuhnya.
- Pencadangan dan tindakan: Menangani tindakan kembali dan naik dengan benar secara default.
Menyiapkan lingkungan
Untuk menyertakan dukungan navigasi dalam project Anda, tambahkan dependensi berikut ke
file build.gradle
aplikasi Anda:
Groovy
dependencies { def nav_version = "2.7.7" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // 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:$nav_version" }
Kotlin
dependencies { val nav_version = "2.7.7" // Java language implementation implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // 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:$nav_version") }
Untuk informasi tentang cara menambahkan komponen arsitektur lainnya ke project Anda, lihat Menambahkan komponen ke project Anda.
Langkah berikutnya
Untuk dokumentasi dan referensi lain terkait dengan komponen Navigasi, lihat referensi berikut ini.
Panduan mendetail
Untuk informasi selengkapnya tentang cara menerapkan host navigasi dan NavController
,
serta detail cara interaksinya dengan Compose dan framework UI lainnya, lihat
panduan berikut:
- Membuat pengontrol navigasi: Menguraikan cara membuat
NavController
. - Buat grafik navigasi: Memerinci cara membuat host navigasi dan grafik navigasi.
- Menavigasi ke tujuan: Mendemonstrasikan cara menggunakan
NavController
untuk berpindah di antara tujuan dalam grafik Anda.
Codelab
- Mempelajari Navigasi Jetpack
- Fragmen dan Komponen Navigasi
- Membangun aplikasi adaptif dengan navigasi dinamis
Video
- Menavigasi navigasi
- 10 praktik terbaik untuk berpindah ke satu aktivitas
- Aktivitas tunggal: Mengapa, kapan, dan hHow (Android Dev Summit '18)
- Android Jetpack: Mengelola navigasi UI dengan pengontrol navigasi (Google I/O '18)