Jetpack Navigation 3 1.0 版已穩定發布 🎉,歡迎立即在正式版應用程式中使用。JetBrains 已在 KotlinConf 應用程式中使用 Navigation 3。
Navigation 3 是從頭建構的新導覽程式庫,可支援 Jetpack Compose 狀態。您可以完全掌控返回堆疊、保留導覽狀態,並輕鬆建立自適應版面配置 (例如清單/詳細資料)。JetBrains 甚至還提供跨平台版本。
為什麼要使用新程式庫?
原始 Jetpack Navigation 程式庫 (現為 Nav2) 是在 7 年前設計,雖然能有效達成原始目標,且經過反覆改良,但應用程式的建構方式已發生根本變化。
使用宣告式 UI 進行反應式程式設計,現在已成為常態。Nav3 採用這種做法。舉例來說,NavDisplay (顯示畫面的 Nav3 UI 元件) 只會觀察由 Compose 狀態支援的鍵清單 (每個鍵代表一個畫面),並在清單變更時更新 UI。
Nav2 也有自己的內部狀態,因此可能難以建立導覽狀態的單一事實來源。使用 Nav3 時,您需要自行提供狀態,因此可以完全掌控。
最後,您希望能有更多彈性和自訂選項。Nav3 不採用單一、單體式 API,而是提供較小、分離的 API (或「建構模塊」),可組合成複雜的功能。Nav3 本身會使用這些建構模塊,為定義明確的導覽用途提供合理的預設值。
這種做法可讓您:
- 在全域和個別層級自訂螢幕動畫
- 同時顯示多個窗格,並使用 Scenes API 建立彈性版面配置
- 如需自訂行為,可輕鬆將 Nav3 元件替換為自己的實作項目
如要進一步瞭解其設計和功能,請參閱產品發布網誌。
從 Navigation 2 遷移
如果您已使用 Nav2,尤其是 Navigation Compose,建議您遷移至 Nav3。為協助您完成這項作業,我們提供了遷移指南。主要步驟如下:
- 新增 Navigation 3 依附元件。
- 更新導覽路徑,實作 NavKey。路徑不一定要實作這個介面才能使用 Nav3,但如果實作,您就能利用 Nav3 的 rememberNavBackStack 函式建立永久返回堆疊。
- 建立類別來保留及修改導覽狀態,也就是保留返回堆疊的位置。
- 請使用這些類別取代 NavController。
- 將目的地從 NavHost 的 NavGraph 移至 entryProvider。
- 將 NavHost 替換為 NavDisplay。
實驗 AI 代理遷移作業
您可以嘗試使用 AI 代理讀取遷移指南,並在專案中執行步驟。如要使用 Android Studio 內建 Gemini 的 Agent 模式試用這項功能,請按照下列步驟操作:
- 將這份指南的 Markdown 版本儲存到專案中。
- 將這段提示詞貼到代理,但不要按下 Enter 鍵:「Migrate this project to Navigation 3 using 」。
- 輸入 @migration-guide.md,將指南做為背景資訊提供給代理。
請務必仔細檢查 AI 代理所做的變更,因為 AI 代理可能會出錯!
歡迎在此提供意見,分享你或服務專員的表現。
常見情境的導覽食譜
對於常見但細微的用途,我們提供方法存放區。這項範例說明如何以特定方式結合 Nav3 API,您可以根據特定需求選擇或修改方案。如果某個方案很受歡迎,我們會考慮將其中不涉及細微差異的部分「升級」至核心 Nav3 程式庫或外掛程式庫。
目前有 19 種食譜,包括:
- 多個返回堆疊
- 模組化和依附元件插入
- 將導覽引數傳遞至 ViewModel (包括使用 Koin)
- 依事件和共用狀態傳回畫面結果
我們目前正在開發深層連結食譜,以及 Koin 整合,並計劃推出許多其他功能。JetBrains 的工程師也發布了 Compose Multiplatform 版本的食譜。
如果您有常見的用途,並希望查看相關食譜,請提出食譜要求。
摘要
如要開始使用 Nav3,請參閱說明文件和食譜。此外,請密切關注一整週的技術內容,包括:
- 深入探討 API 的影片,涵蓋模組化、動畫和自動調整式版面配置。
- 與 Nav3 開發工程師進行即時問答 (AMA)。
Nav3 Spotlight 週將於 2025 年 12 月 1 日開始。
和往常一樣,如果發現任何問題,請在這裡回報。
-
產品最新消息2025 年,Android 生態系統已不限於手機,如今,開發人員有機會觸及超過 5 億部活躍裝置,包括摺疊式裝置、平板電腦、XR、Chromebook 和相容車輛。
Fahd Imtiaz • 閱讀時間:2 分鐘 -
產品最新消息今天,我們在 Android 開發人員高峰會上宣布,將廣泛提供多項工具和 API,旨在消除日常摩擦,讓您更靈活地建構出色的 Android 應用程式。
Matthew McCullough • 閱讀時間:4 分鐘 -
產品最新消息Android Studio Rabbit 2 穩定版已推出,可供您在正式環境中使用。此版本包含多項重要功能,可提升開發效率,例如「自備代理」、全新 XR 模擬器功能、LeakCanary 更新、全新代理技能管理工具、AI 程式碼審查等。
Matthew Warner • 閱讀時間:3 分鐘
每週透過電子郵件接收 Android 開發人員的最新深入分析。