Navigation 3

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

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

大致來說,您可以透過下列方式導入 Navigation 3:

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

您可以在 AOSP 上查看 Navigation 3 的完整原始碼。

Jetpack Navigation 的改良功能

Navigation 3 在原始 Jetpack Navigation API 的基礎上,進行了以下改良:

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

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

程式碼範例

recipes 存放區包含範例,說明如何使用 Navigation 3 建構區塊解決常見的導航問題。