Navigasi 3

Navigation 3 adalah library navigasi baru yang dirancang untuk bekerja dengan Compose. Dengan Navigation 3, Anda memiliki kontrol penuh atas data sebelumnya, dan Anda dapat menavigasi ke dan dari tujuan dengan menambahkan dan menghapus item dari daftar. Library 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:

  1. 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.
  2. Buat back stack yang digunakan untuk memasukkan dan menghapus kunci saat pengguna menjelajahi aplikasi Anda. Lihat Membuat back stack.
  3. Gunakan NavDisplay untuk menampilkan tumpukan kembali aplikasi Anda. Setiap kali stack kembali berubah, stack tersebut akan memperbarui UI untuk menampilkan konten yang relevan. Lihat Menampilkan stack belakang.
  4. Ubah strategi adegan NavDisplaysesuai kebutuhan untuk mendukung tata letak adaptif dan platform yang berbeda.
  5. Mendukung deep link untuk menavigasi langsung ke tujuan.

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 stack sebelumnya secara bersamaan, sehingga dapat beradaptasi dengan perubahan ukuran jendela dan input lainnya.

Baca selengkapnya tentang prinsip dan pilihan desain API Navigation 3 di postingan blog pengumuman.

Contoh kode

Repositori resep berisi contoh cara menggunakan elemen penyusun Navigation 3 untuk mengatasi tantangan navigasi umum.