導覽事件

Navigation Event 程式庫提供 Kotlin Multiplatform (KMP) 解決方案,可將系統層級的導覽事件整合至應用程式。這項 API 的設計宗旨是成為基礎層,用於處理各種支援平台的導覽方向。

核心概念

Navigation Event 系統是以集中式調度器處理常式模型為基礎建構而成,通常用於父項/子項階層,以便對應至複雜的 UI 結構,例如 Jetpack Compose 中的結構。

NavigationEventDispatcher 是負責管理所有已註冊導覽事件取用端 (NavigationEventHandler) 並協調事件流程的中央類別。

在階層式設定中,同一鏈結中的所有調度器都會共用單一 NavigationEventProcessor,這個調度器會管理全域狀態,並確保整個樹狀結構的調度順序一致。

NavigationEventHandler 是抽象類別,用於接收及處理 NavigationEventDispatcher 分派的導覽事件。這會定義對應於導覽手勢生命週期不同階段的回呼方法,例如手勢開始、進行、完成或取消時。

處理常式可以回應這些事件,以便因應使用者導覽動作更新 UI 或應用程式狀態。多個處理常式可透過調度器登錄,並根據優先順序和登錄順序叫用。

NavigationEvent 是資料類別,可攜帶導覽手勢的詳細資料。

NavigationEventInfo 是抽象類別,可提供導覽狀態的脈絡資訊。

NavigationEventInput 是元件的抽象類別,可產生及傳送導覽事件。它會做為導覽系統的「輸入」端,將平台專屬事件 (例如系統返回手勢或按鈕點擊) 轉換為可傳送至 NavigationEventDispatcher 的標準化事件。

支援的導航路線和觸發條件

Navigation Event 系統的設計目標不僅是涵蓋系統返回按鈕,還支援跨平台的多種導覽方向和輸入方法。

支援的指示

不同平台支援的導覽方向各不相同:

平台

返回

向上

轉寄

首頁

Android 手機

🚫

Android 平板電腦

🚫

網頁 (瀏覽器)

🚫

iOS (iPhone/iPad)

🚫

支援的觸發條件

每個平台都提供各種機制來處理輸入內容:

觸發

Android 手機

網頁 (瀏覽器)

iOS (iPhone/iPad)

鍵盤返回按鈕

✅ 返回

✅ 返回

軟體返回按鈕

🚫

✅ 返回

✅ 返回

軟體向上按鈕

✅ 提升

🚫

🚫

從左側滑動

✅ 返回

✅ 返回

從右側滑動

✅ 返回

✅ 轉寄

從底部滑動

✅ 首頁

🚫

✅ 首頁