導覽是指允許使用者在應用程式的不同內容片段中,自由進行瀏覽、進入及退出的互動方式。
您可以利用 Android Jetpack 的 Navigation 元件實作導覽作業,包括簡單的按鈕點擊或應用程式列與導覽匣等較為複雜的模式。
此外,Navigation 元件還會依循一組既定原則,確保提供一致且可預測的使用者體驗。
Navigation 的主要部分
Navigation 元件包含以下說明的三個主要部分:
- 導覽圖:一種 XML 資源,可集中提供所有導覽相關資訊。這包括應用程式內的所有個別內容區域 (稱為「目的地」),以及使用者可在應用程式中採取的可能路徑。
NavHost
:顯示導覽圖中目的地的空白容器。導覽元件包含預設的NavHost
實作 (NavHostFragment
),可顯示片段目的地。NavController
:在NavHost
中管理應用程式導覽的物件。當使用者在整個應用程式中移動時,NavController
會自動化調度管理NavHost
中目的地內容的交換。
瀏覽應用程式時,您會告知 NavController
您想沿導覽圖中的特定路徑瀏覽,或直接前往特定目的地。NavController
會在 NavHost
中顯示相應的目的地。
導覽元件提供許多其他好處,包括:
- 處理片段交易。
- 根據預設,正確處理「向上」和「返回」動作。
- 為動畫與轉換提供標準化資源。
- 實作及處理深層連結。
- 提供 Navigation UI 模式 (如導覽匣和底部導覽),只需極少的額外工作。
- 包含 Safe Args,這個 Gradle 外掛程式可在目的地之間瀏覽及傳遞資料時確保類型安全。
- 提供
ViewModel
支援:您可將ViewModel
的範圍限定為導覽圖,在圖表的目的地之間共用 UI 相關資料。
此外,您還可以使用 Android Studio 的導覽編輯器查看及編輯導覽圖。
Navigation 與 Android Studio 的最新穩定版相容。
後續步驟
如需更多有關 Navigation 元件的說明文件和資源,請參閱下列資源。
開始使用
其他主題
- 導覽原則
- 將不同的板型規格納入設計考量
- 確保與手勢操作功能相容
- 設計導覽圖
- 巢狀導覽圖
- 全域動作
- 條件式導覽
- 在目的地之間傳遞資料
- 建立目的地的深層連結
- 為目的地之間的轉換加上動畫效果
- 使用 NavigationUI 更新 UI 元件
- 使用 ViewPager 建立含有分頁的滑動檢視畫面
- 透過程式輔助方式與 Navigation 元件互動
- 測試導覽功能
- 新增對新目的地類型的支援
- 提供自訂返回導覽功能
- 遷移至導覽元件
範例
程式碼研究室
影片
- 瀏覽導覽功能
- 移至單一活動的 10 種最佳做法
- 單一活動:原因、時機和方式 (2018 年 Android 開發人員高峰會)
- Android Jetpack:使用導覽控制器管理 UI 導覽 (2018 年 Google I/O 大會)