Navigation 3 是專為搭配 Compose 使用的全新導覽程式庫。有了 Navigation 3,您就能完全控制返回堆疊,而且前往及離開目的地的操作就像在清單中新增及移除項目一樣簡單。它會提供下列項目,建立彈性的應用程式導覽系統:
- 用於模擬返回堆疊的慣例,其中返回堆疊中的每個項目代表使用者已瀏覽的內容
- 隨著返回堆疊變更 (包括動畫) 自動更新的 UI
- 返回堆疊中項目的範圍,可在項目位於返回堆疊時保留狀態
- 自適應版面配置系統,可同時顯示多個目的地,並在這些版面配置之間順暢切換
- 內容與其父項版面配置 (中繼資料) 進行通訊的機制
大致來說,您可以透過下列方式實作 Navigation 3:
- 定義使用者可在應用程式中瀏覽的內容,每個內容都會設有專屬的鍵,並新增函式,將該鍵解析為內容。請參閱「將鍵解析為內容」一節。
- 建立返回堆疊,在使用者瀏覽應用程式時,將鍵推送至返回堆疊並從中移除。請參閱「建立返回堆疊」。
- 使用
NavDisplay
顯示應用程式的返回堆疊。每當返回堆疊發生變更時,它就會更新 UI 以顯示相關內容。請參閱「顯示回溯堆疊」一文。 - 視需要修改
NavDisplay
的場景策略,以支援自適應版面配置和不同平台。
您可以在 AOSP 上查看 Navigation 3 的完整原始碼。
改善 Jetpack Navigation
Navigation 3 在以下方面改善了原始的 Jetpack Navigation API:
- 提供更簡單的 Compose 整合
- 可讓您完全控制返回堆疊
- 可讓您建立可同時從返回堆疊讀取多個目的地的版面配置,讓版面配置能夠因應視窗大小和其他輸入內容的變更。
如要進一步瞭解 Navigation 3 的原則和 API 設計選項,請參閱這篇網誌文章。
程式碼範例
範例存放區包含如何使用 Navigation 3 建構區塊解決常見導覽問題的範例。