Navigation 3

Navigation 3 是專為搭配 Compose 設計的導覽程式庫。使用 Navigation 3 時,您可以完全掌控返回堆疊,並透過在清單中新增及移除項目,在目的地之間導覽。這項功能提供下列項目,可建立彈性的應用程式導覽系統:

  • 返回堆疊的建模慣例,其中返回堆疊上的每個項目都代表使用者瀏覽的內容
  • 使用者介面會隨著返回堆疊的變化自動更新 (包括動畫)
  • 返回堆疊中項目的範圍,允許在項目位於返回堆疊中時保留狀態
  • 適應性版面配置系統,可同時顯示多個目的地,並在這些版面配置之間順暢切換
  • 內容與上層布局通訊的機制 (中繼資料)
  • 在畫面間傳回結果的跨目的地通訊

整體來說,您可以透過下列方式實作 Navigation 3:

  1. 定義使用者可在應用程式中瀏覽的內容,每個內容都有專屬鍵,並新增函式,將該鍵解析為內容。請參閱解決內容金鑰問題
  2. 建立返回堆疊,讓鍵在使用者瀏覽應用程式時推送到堆疊,並從堆疊中移除。請參閱「建立返回堆疊」。
  3. 使用 NavDisplay 顯示應用程式的返回堆疊。每當返回堆疊變更時,系統就會更新 UI,顯示相關內容。請參閱顯示返回堆疊
  4. 視需要修改NavDisplay場景策略,以支援自動調整式版面配置和不同平台。
  5. 支援深層連結,可直接前往目的地。

您可以在 Android 開放原始碼計畫中查看 Navigation 3 的完整原始碼

Jetpack Navigation 的改良功能

Navigation 3 在以下方面改良了原始的 Jetpack Navigation API:

  • 簡化與 Compose 的整合
  • 讓您完全掌控返回堆疊
  • 可建立版面配置,同時從返回堆疊讀取多個目的地,以便因應視窗大小和其他輸入內容的變化。

如要進一步瞭解 Navigation 3 的原則和 API 設計選項,請參閱公告網誌文章

程式碼範例

食譜存放區提供範例,說明如何使用 Navigation 3 建構區塊解決常見的導覽問題。