Navigasi 3

Navigation 3 adalah library navigasi yang dirancang untuk berfungsi dengan Compose. Dengan Navigation 3, Anda memiliki kontrol penuh atas data sebelumnya, dan Anda dapat beralih antar-tujuan dengan menambahkan dan menghapus item dari daftar. Library ini membuat sistem navigasi aplikasi yang fleksibel dengan menyediakan:

  • Konvensi untuk membuat model data sebelumnya, dengan setiap entri pada data sebelumnya mewakili konten yang telah dibuka pengguna
  • UI yang otomatis diupdate dengan perubahan data sebelumnya (termasuk animasi)
  • Cakupan untuk item dalam data sebelumnya, yang memungkinkan status dipertahankan saat item berada dalam data sebelumnya
  • Sistem tata letak adaptif yang memungkinkan beberapa tujuan ditampilkan secara bersamaan, sehingga memungkinkan peralihan yang lancar di antara tata letak tersebut
  • Mekanisme agar konten dapat berkomunikasi dengan tata letak induknya (metadata)
  • Komunikasi antar-tujuan untuk menampilkan hasil antar-layar

Pada intinya, Anda mengimplementasikan Navigation 3 dengan cara berikut:

  1. Tentukan konten yang dapat dibuka pengguna di aplikasi Anda, masing-masing dengan kunci unik, dan tambahkan fungsi untuk me-resolve kunci tersebut ke konten. Lihat Menyelesaikan kunci ke konten.
  2. Buat data sebelumnya yang kuncinya didorong dan dihapus saat pengguna menavigasi aplikasi Anda. Lihat Membuat data sebelumnya.
  3. Gunakan NavDisplay untuk menampilkan data sebelumnya aplikasi Anda. Setiap kali data sebelumnya berubah, UI akan diperbarui untuk menampilkan konten yang relevan. Lihat Menampilkan data sebelumnya.
  4. Ubah strategi scene NavDisplay sesuai kebutuhan untuk mendukung tata letak adaptif dan berbagai platform.
  5. Mendukung deep link untuk langsung membuka tujuan.

Anda dapat melihat kode sumber lengkap untuk Navigation 3 di AOSP.

Peningkatan pada Jetpack Navigation

Navigation 3 meningkatkan Jetpack Navigation API 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 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 menyelesaikan tantangan navigasi umum.