Navigation 3 adalah library navigasi baru yang dirancang untuk bekerja dengan Compose. Dengan Navigation 3, Anda memiliki kontrol penuh atas data sebelumnya, dan bernavigasi ke dan dari tujuan semudah menambahkan dan menghapus item dari daftar. Hal ini membuat sistem navigasi aplikasi yang fleksibel dengan menyediakan:
- Konvensi untuk memodelkan data sebelumnya, dengan setiap entri di data sebelumnya mewakili konten yang telah dibuka pengguna
- UI yang otomatis diupdate dengan perubahan stack kembali (termasuk animasi)
- Cakupan untuk item di data sebelumnya, yang memungkinkan status dipertahankan saat item berada di data sebelumnya
- Sistem tata letak adaptif yang memungkinkan beberapa tujuan ditampilkan secara bersamaan, dan memungkinkan peralihan yang lancar di antara tata letak tersebut
- Mekanisme agar konten dapat berkomunikasi dengan tata letak induknya (metadata)
Pada intinya, Anda menerapkan Navigation 3 dengan cara berikut:
- Tentukan konten yang dapat dijelajahi pengguna di aplikasi Anda, masing-masing dengan kunci unik, dan tambahkan fungsi untuk menyelesaikan kunci tersebut ke konten. Lihat Menyelesaikan kunci ke konten.
- Buat back stack yang digunakan untuk memasukkan dan menghapus kunci saat pengguna menjelajahi aplikasi Anda. Lihat Membuat back stack.
- Gunakan
NavDisplayuntuk menampilkan tumpukan kembali aplikasi Anda. Setiap kali stack kembali berubah, stack tersebut akan memperbarui UI untuk menampilkan konten yang relevan. Lihat Menampilkan tumpukan kembali. - Ubah strategi adegan
NavDisplaysesuai kebutuhan untuk mendukung tata letak adaptif dan platform yang berbeda.
Anda dapat melihat kode sumber lengkap untuk Navigation 3 di AOSP.
Peningkatan pada Jetpack Navigation
Navigation 3 meningkatkan kualitas API Jetpack Navigation asli dengan cara berikut:
- Menyediakan integrasi yang lebih sederhana dengan Compose
- Menawarkan kontrol penuh atas data sebelumnya
- Memungkinkan pembuatan tata letak yang dapat membaca lebih dari satu tujuan dari data sebelumnya secara bersamaan, sehingga dapat beradaptasi dengan perubahan ukuran jendela dan input lainnya.
Baca selengkapnya prinsip dan pilihan desain API Navigation 3 di postingan blog ini.
Contoh kode
Repositori resep berisi contoh cara menggunakan elemen penyusun Navigation 3 untuk mengatasi tantangan navigasi umum.