Navigasi 3

Navigation 3 adalah library navigasi baru yang dirancang untuk berfungsi dengan Compose. Dengan Navigation 3, Anda memiliki kontrol penuh atas data sebelumnya, dan menavigasi ke dan dari tujuan semudah menambahkan dan menghapus item dari daftar. Hal ini membuat sistem navigasi aplikasi yang fleksibel dengan menyediakan:

  • Konvensi untuk membuat model data sebelumnya, dengan setiap entri di data sebelumnya mewakili konten yang telah dibuka pengguna
  • UI yang otomatis diperbarui 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, dan memungkinkan peralihan yang lancar di antara tata letak tersebut
  • Mekanisme untuk konten agar dapat berkomunikasi dengan tata letak induknya (metadata)

Pada tingkat tinggi, Anda menerapkan Navigasi 3 dengan cara berikut:

  1. Tentukan konten yang dapat dinavigasi pengguna di aplikasi Anda, masing-masing dengan kunci unik, dan tambahkan fungsi untuk me-resolve kunci tersebut ke konten. Lihat Me-resolve kunci ke konten.
  2. Buat data sebelumnya yang akan didorong dan dihapus saat pengguna membuka aplikasi Anda. Lihat Membuat data sebelumnya.
  3. Gunakan NavDisplay untuk menampilkan data sebelumnya aplikasi Anda. Setiap kali data sebelumnya berubah, data tersebut akan memperbarui UI untuk menampilkan konten yang relevan. Lihat Menampilkan data sebelumnya.
  4. Ubah strategi scene NavDisplay sesuai kebutuhan untuk mendukung tata letak adaptif dan platform yang berbeda.

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

Peningkatan pada Jetpack Navigation

Navigasi 3 meningkatkan Jetpack Navigation API asli dengan cara berikut:

  • Memberikan integrasi yang lebih sederhana dengan Compose
  • Memberi Anda kontrol penuh atas data sebelumnya
  • Memungkinkan pembuatan tata letak yang dapat membaca lebih dari satu tujuan dari data sebelumnya secara bersamaan, sehingga memungkinkannya beradaptasi dengan perubahan ukuran jendela dan input lainnya.

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

Contoh kode

Repositori resep berisi contoh cara menggunakan elemen penyusun Navigasi 3 untuk menyelesaikan tantangan navigasi umum.