navigationevent
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 10 月 8 日 | - | - | 1.0.0-beta01 | - |
宣告依附元件
如要為 navigationevent 新增依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
Groovy
dependencies { implementation "androidx.navigationevent:navigationevent:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.navigationevent:navigationevent:1.0.0-beta01") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 文件。
這個構件沒有任何版本資訊。
1.0 版本
1.0.0-beta01 版
2025 年 10 月 8 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-beta01
。1.0.0-beta01 版包含這些修訂項目。
API 變更
- 修正
NavigationEvent.touchX
和NavigationEvent.touchY
的FloatRange
註解。這些值代表絕對像素座標,沒有1.0
上限。(I4b205、b/445989313) - 將
NavigationEventDispatcherOwner
可組合函式重構為rememberNavigationEventDispatcherOwner
。函式現在會直接傳回NavigationEventDispatcherOwner
。如要將這個擁有者提供給子組合,請使用CompositionLocalProvider
。(I874b2、b/444446629)
1.0.0-alpha09 版本
2025 年 9 月 24 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha09
。1.0.0-alpha09 版包含這些修訂項目。
API 變更
- 請直接使用
NavigationEventTransitionState.Idle
單例模式物件,而非例項化Idle()
。(Ic7d9e、b/444734264) - 將便利建構函式設為內部函式;透過公開
NavigationEventDispatcher.history
取得例項,而非直接建構。(I3b7e0、b/444734264) - 必須透過
rememberNavigationEventState
建立NavigationEventState
;建構函式現在是內部函式。(Ie143c、b/444734264) - 採用
onBackCompletedFallback
,取代fallbackOnBackPressed
用法和建構函式參數。行為不變,只會在完成且未處理的返回事件上叫用。(Idabe9、b/444734264) NavigationEventHistory(mergedHistory, currentIndex)
的主要建構函式現在是internal
。外部消費者必須使用公開建構函式 (空白建構函式或以分割區為基礎的建構函式),才能建立例項。(I1c047、b/444734264)- 讓
View.setViewTreeNavigationEventDispatcherOwner
接受可為空值的擁有者 (Ic9eb6、b/444436762) NavigationEventInfo
現在是abstract class
,而非interface
。更新所有自訂實作,從類別 (例如data class MyInfo : NavigationEventInfo()
) 繼承。(I1e59c、b/444734264)- 已移除舊版
NavigationEventDispatcher.state
屬性和getState<T>()
函式。使用新的獨立dispatcher.transitionState
(手勢進度) 和dispatcher.history
(導覽堆疊) 流程。(Ic2ceb、b/444734264) NavigationEventInput.onInfoChanged(...)
回呼已取代。實作新的onHistoryChanged(history: NavigationEventHistory)
回呼,以單一NavigationEventHistory
物件的形式接收更新。(I23e0b、b/444734264)- 推出全新全球
NavigationEventDispatcher.history
StateFlow
。這個非泛型流程可讓觀察者只訂閱導覽堆疊的變更,並在手勢進度期間保持穩定。這是transitionState
的對應項目。(I1db10、b/444734264) - 推出全新全球
NavigationEventDispatcher.transitionState
StateFlow
。這個非泛型流程可讓觀察者只訂閱實體手勢狀態 (閒置/進行中),與記錄分開。(I171fa、b/444734264) - 介紹
NavigationEventHistoryState
類別。這項 API 將做為觀察導覽資訊記錄的核心 API,與手勢狀態分開。(I81ca5、b/444734264) NavigationEvent
現已標示為@Immutable
,可讓 Compose 編譯器最佳化重組作業。(If78c7、b/444734264)- 已更新
navigationevent-compose
處理常式 API,NavigationEventHandler
和NavigationBackHandler
(以及變體) 現在支援新的多載,可接受升高的NavigationEventState
。簡單的超載 (採用currentInfo
) 會保留,並在內部使用這個新狀態模型。(Ic3251、b/444734264) - 將新的
@Stable
NavigationEventState<T>
狀態持有者新增至navigationevent-compose
程式庫。這個物件會結合本機記錄和本機手勢狀態,並成為rememberNavigationEventState
和NavigationEventHandler
之間的主要連結。(Ifb69f、b/444734264) - 在
NavigationEventHandler
中新增公開唯讀的transitionState: TransitionState
屬性。處理常式現在會維護自己的轉移狀態,外部系統可以觀察這項狀態。(I9acd2、b/444734264) - 導入新的
TransitionState
密封類別。這會做為觀察手勢狀態的核心 API,與瀏覽記錄分開。(Id4beb、b/444734264) - 在
NavigationEventHandler
上,將currentInfo
、backInfo
和forwardInfo
公開為唯讀屬性。(Ia7636、b/444734264) NavigationEventHandler
的實作現在必須向基本建構函式提供initialInfo: T
值。(Idcfea、b/444734264)- 將
OnBackInvokedInput
替換為OnBackInvokedOverlayInput
或OnBackInvokedDefaultInput
。(I5323f、b/428948766) - 將
NavigationEventState
標示為@Immutable
。這樣可確保觀察這個狀態的可組合項能正確略過重組,進而提升 Compose 效能。(I399c8) - 將
NavigationEventInfo.NotProvided
重新命名為NavigationEventInfo.None;
,並更新參照。行為沒有變更。(I5e2d4) NavigationEventInfo
現已標示為@Immutable
,可讓 Compose 編譯器最佳化重組作業。(I7c112)- 透過有趣的回填後端完成介面,提升 Java 人體工學。(I8a860)
- 將
onHasEnabledHandlerChanged
重新命名為onHasEnabledHandlersChanged
。這項說明指出,回呼會回報所有處理常式的整體啟用狀態,而不只是其中一個。(I1af61、b/443711297) - 從
NavigationEventDispatcher;
中移除hasEnabledHandler()
,改用NavigationEventInput.onHasEnabledHandlersChanged
。(Idef72、b/443711297) - 在
NavigationEventInput
中新增onInfoChanged
回呼,通知接聽程式導覽記錄的變更。這會提供目前、返回和轉送堆疊的完整脈絡,讓輸入內容對脈絡資訊做出反應。(I69a8b、b/443282983) - Make
NavigationEvent
'sswipeEdge
an@IntDef
(Icee54, b/443950342) - 在
NavigationEventDispatcher.addInput
中新增priority
參數,將調度器範圍設為一個優先順序;現在只有在該優先順序的回呼變更時,才會觸發onHasEnabledCallbacksChanged
等事件。(I3e488、b/443711297) - 為求清楚起見,將
NavigationEventDispatcher
參數從parentDispatcher
重新命名為 parent。(Id4f1f、b/443801782) - 為 Java 使用者移除
NavigationEventPriority
,改用@IntDef
(I10a9f、b/440514265) - 強制執行導覽處理常式合約。如果
NavigationEventHandler
將isBackEnabled
或isForwardEnabled
設為true
,您現在必須分別覆寫onBackCompleted
或onForwardCompleted
。預設實作現在會擲回例外狀況,避免發生無聲無息的失敗。(I17c62) - 新增導覽事件處理常式時,強制執行有效優先順序值。現在使用不支援的優先順序呼叫
addHandler
時,系統會擲回IllegalArgumentException
,針對所有目標平台上的錯誤用法提供即時意見回饋。(I3c474)
修正錯誤
- 讓
addHandler
成為等冪函式,忽略重複註冊。(I052aa、b/444734264) - 在重組期間,讓
NavigationEventState
屬性保持同步。(Ib3b4d、b/444734264) - 確保
NavigationEventInputs
在註冊後立即收到目前的脈絡資訊 (目前、返回、轉送)。(Ie65bf、b/443282983)
1.0.0-alpha08 版本
2025 年 9 月 10 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha08
。1.0.0-alpha08 版包含這些修訂項目。
新功能
- 導入以 Lambda 為基礎的
NavigationEventHandler
API,取代以 Flow 為基礎的處理常式。使用簡單的回呼處理返回和前進手勢,不必收集流程,減少樣板並避免取消問題。提供NavigationBackHandler
和NavigationForwardHandler
做為目標便利 API。移除以 Flow 為基礎的NavigationEventHandler
,並遷移至新的回呼。(I23bac、b/436248277) - 允許被動接聽程式透過合併的返回資訊存取完整的返回導覽堆疊。啟用 UI 即可轉譯預覽畫面和巢狀導覽記錄,而不必僅限於最上層的回呼。(I7a510、b/436248277)
- 導入明確的返回/目前/前進模型,釐清導覽狀態,並支援使用巢狀處理常式進行前進導覽。(Ib86da、b/420443609)
- 將
onForward*
方法和isForwardEnabled
新增至NavigationEventCallback
。(Ic100f、b/436248290) - 在
NavigationEventInput
中新增向前導覽支援。(I5734b)
API 變更
- 使用
TestNavigationEventCallback
啟用正向導覽事件的測試。使用isForwardEnabled
和onForward*
勾點。(I21fb5、b/420443609) - 在
NavEvent
中,將onEvent*
回呼重新命名為onBack*
。(I228b3、b/436248290) - 將
SwipeEdge
轉換為內嵌類別。(Id5e01) - 讓
navigationevent
程式庫與 Java 互通。現在可透過 Java 程式碼完整存取所有公開 API,順暢整合至混合語言或僅使用 Java 的專案。(Ibc944、I5465f、I9fb1e、b/440532890b/443040294) - 將
NavigationEventCallback
重新命名為NavigationEventHandler
,以釐清 API 角色。這項變更可更貼切地反映類別用途,也就是處理多階段導覽手勢。對應的addCallback
方法現在是addHandler
。(I2492a、b/443040331)
修正錯誤
- 防止在向前瀏覽時執行返回後備機制。(I74814、b/436248290)
- 新增對預測前向導覽的支援。
NavigationEvent
API 現在可處理返回和前進手勢,讓兩種導覽方向都能使用一致的動畫。(Idc98c、b/436248290) - 防止在移除子項
NavigationEventDispatcherOwner
時,於重組期間發生IllegalStateException
異常終止情形。(Iff50c、b/412629020) - 被動接聽程式現在可以透過合併的返回資訊存取完整的返回導覽堆疊,讓 UI 能夠轉譯預覽畫面和巢狀導覽記錄,而不僅限於最頂端的回呼。(I7a510、b/436248277)
1.0.0-alpha07 版本
2025 年 8 月 27 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha07
。1.0.0-alpha07 版包含這些修訂項目。
API 變更
- 移除
NavigationEventDispatcher.onHasEnabledCallbacksChanged
。(I50e97) - 將
NavigationEventCallback.onEventCompleted()
設為抽象。(I36b38) - 將
NavigationEventCallback#on*
方法變更為protected
。更新呼叫碼即可覆寫這些設定。(I6b691) - 重新命名
DirectNavigationEventInput
函式。(Iffb62) - 將
NavigationEventInput.onAttach
重新命名為onAdded
。(I2d0b8) - 將
NavigationEventInput.onDetach
重新命名為onRemoved
。(I2d0b8) - 將
NavigationEventInputHandler
重新命名為NavigationEventInput
。(I676a4) - 在
NavigationEventInput.onHasEnabledCallbacksChanged
中新增@EmptySuper
。(If9853) - 在
NavigationEventInputHandler
中實作onAttach
。(I03648) - 在
NavigationEventInputHandler
中實作onDetach
。(I03648) - 建立時預設為啟用
NavigationEventCallback
。(Ic0188) - 以
NavigationEventInput.onHasEnabledCallbacksChanged
取代NavigationEventInput.addOnHasEnabledCallbacksChangedCallback
。 (I64e93) - 要求
NavigationEventDispatcher.addInput
的主執行緒。(Ic2930) - 要求
NavigationEventDispatcher.removeInput
的主執行緒。(Ic2930) - 移除
Dispatcher.addOnHasEnabledCallbacksChangedCallback
。以Dispatcher.onHasEnabledCallbacksChanged
取代。(Ida3e3、b/436530096)
修正錯誤
- 修正錯誤:新增已附加的處理常式或移除未附加的處理常式時,會觸發不正確的生命週期邏輯。(I9e47b)
1.0.0-alpha06 版本
2025 年 8 月 13 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha06
。1.0.0-alpha06 版包含這些修訂項目。
新功能
被動監聽器 API
您現在可以從任何導覽主機傳遞自訂脈絡資訊,並從 UI 中的任何位置被動監聽手勢狀態變化。這項設定會啟用預測返回和其他手勢導覽的情境感知動畫。
這項功能包含兩部分:
- 提供資訊 - 使用
NavigationEventInfo
傳送自訂資料。 - 消耗狀態 - 使用
dispatcher.state
(NavigationEventState
) 觀察手勢進度和情境。
NavigationEventCallback
現在會公開setInfo(currentInfo, previousInfo)
方法,以便在一次呼叫中設定手勢內容 (I1d5e7、b/424470518)。NavigationEventHandler
新增了接受currentInfo
和previousInfo
的新多載,成為在 Compose 應用程式中提供內容的主要 API (I6ecd3、b/424470518)。
例子:
data class MyScreenInfo(val screenName: String) : NavigationEventInfo
NavigationEventHandler(
enabled = true,
currentInfo = MyScreenInfo("Details Screen"),
previousInfo = MyScreenInfo("Home Screen")
) { /* Handle back completion */ }
NavigationEventDispatcher
現在會公開dispatcher.state
和dispatcher.getState<T>()
(If7fae、Ia90ca、b/424470518)。這些以StateFlow
為基礎的 API 可讓任何 UI 觀察手勢進度和脈絡資料,不必直接處理事件。
例子:
val gestureState by LocalNavigationEventDispatcherOwner.current!!
.navigationEventDispatcher
.state
.collectAsState()
val progress = gestureState.progress // Returns latestEvent.progress or 0F
when (val state = gestureState) {
is InProgress -> {
val toScreen = state.currentInfo as MyScreenInfo
val fromScreen = state.previousInfo as MyScreenInfo
println("Navigating from ${fromScreen.screenName} to ${toScreen.screenName}")
}
is Idle -> { /* Idle state */ }
}
在
NavigationEventState
中新增progress
屬性 (I7b196),在進行中時傳回latestEvent.progress
,否則傳回0F
:val progress = state.progress
新增
NavigationEventDispatcherOwner
可組合項,以階層方式建立、連結及處置NavigationEventDispatcher
執行個體。啟用動態控制項,可控制調度器的啟用狀態和自動清除作業。@Composable fun Sample() { NavigationEventDispatcherOwner(enabled = true) { val localDispatcherOwner = LocalNavigationEventDispatcherOwner.current } }
API 變更
isPassthrough
參數已從NavigationEventCallback
中移除。(I99028、b/424470518)NavigationEventState
建構函式現在是內部函式。如要進行測試,請透過DirectNavigationEventInputHandler
更新狀態 (預設為Idle
)。呼叫handleOnStarted
或handleOnProgressed
將狀態設為InProgress
,並呼叫handleOnCompleted
或handleOnCancelled
將狀態返回Idle
。如要更新NavigationEventInfo
,請使用NavigationEventCallback.setInfo
。(I93dca、b/424470518)- 已將預設參數新增至
NavigationEvent
,方便例項化及簡化測試,應取代TestNavigationEvent
使用。(I5dc49、I232f4) - 新增
TestNavigationEventCallback
,用於測試具有特定目前/先前狀態的導覽事件。(Idd22e、b/424470518) NavigationEventInputHandler
已成為抽象類別,可取代先前的AbstractNavigationEventInputHandler
,並在DirectNavigationEventInputHandler
中實作 (Iadde5、 Ifed40I3897c、b/432616296、b/435416924)NavigationEventInputHandler
中的send*
函式已將前置字元重新命名為handle*
。(Iffcaf)OnBackInvokedInputHandler
現在會擴充新近abstract
的NavigationInputHandler
。(Ib45aa)- 變更
NavigationEventDispatcherOwner
,要求父項分派器,您必須明確傳遞null
才能建立根分派器。(Ia6f64、b/431534103)
修正錯誤
- 避免在
NavigationEventDispatcher.dispose()
中複製集合,提高效率。(I4ab09) - 修正
NavigationEventHandler
無法正確回應啟用狀態變更的問題。(Ia5268、I19bec、I5be5c、b/431534103)
Google 文件更新
- KDocs for
NavigationEvent
已擴充,可清楚說明其角色,也就是統一的事件包裝函式,以及不同導覽類型 (手勢、點擊) 的詳細資料屬性行為。(I91e8d) - 更新了系統返回處理 Compose API (
BackHandler
、PredictiveBackHandler
、NavigationEventHandler
) 的說明文件,特別說明回呼順序相關行為。(I7ab94)
依附元件更新
NavigationEvent
現在依附於 Compose Runtime 1.9.0-beta03,因此navigationevent-compose
構件可支援所有 KMP 目標。(Ia1b87)
1.0.0-alpha05 版本
2025 年 7 月 30 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha05
。1.0.0-alpha05 版包含這些修訂項目。
支援父項/子項層級:
NavigationEventDispatcher
現在可以有父項和子項分派器,形成階層式樹狀結構。透過鏈結的調度器反映 UI 的結構階層,即可在複雜的 Compose UI 元件中傳播及管理導覽事件,更具彈性。(I194ac)
// Create a parent dispatcher that will manage navigation events at a higher level.
val parentDispatcher = NavigationEventDispatcher()
// Create a child dispatcher linked to the parent, forming a hierarchy.
val childDispatcher = NavigationEventDispatcher(parentDispatcher)
階層式 isEnabled
屬性可從上而下控管調度器。如果將調度工具的 isEnabled
設為 false
,系統會自動停用所有後代調度工具。這項功能可有效率地切換導覽事件系統的整個分支。(I9e985)
// Disabling the child dispatcher disables all its callbacks and any of its children recursively.
childDispatcher.isEnabled = false
此外,NavigationEventCallback
上的 isEnabled
屬性現在會遵守相關聯的調度器啟用狀態。也就是說,只有在回呼本身及其調度器 (包括其祖先) 都已啟用時,回呼才會視為已啟用,確保回呼啟動作業的階層式控制項一致。(I1799a)
// Create a test callback and add it to the child dispatcher.
val callback1 = TestNavigationEventCallback(isEnabled = true)
childDispatcher.addCallback(callback1)
// Since the childDispatcher is disabled, the callback is effectively disabled as well.
assertThat(callback1.isEnabled).isFalse()
我們推出了新的 dispose()
方法,可妥善清理調度器及其子項。呼叫 dispose()
會停止接聽程式,防止記憶體洩漏、遞迴處置所有子項調度器、移除向調度器註冊的所有回呼,並取消連結與父項的連結。這可確保在不再需要調度器時,系統會正確釋出資源。(I9e985)
// Dispose the child dispatcher to clean up resources.
childDispatcher.dispose()
如果對已處置的分派器呼叫任何公開方法,系統會立即擲回 IllegalStateException
。這可避免無聲失敗,並協助開發人員在開發期間找出不當用法。(Ic2dc3)
val callback2 = TestNavigationEventCallback()
// Attempting to use a disposed dispatcher will throw an exception.
assertThrows<IllegalStateException> {
childDispatcher.addCallback(callback2)
}
注意:我們將在 aosp/3692572 中推出新的 NavigationEventDispatcherOwner
Composable,自動管理 Compose UI 中的子項調度器。不過,這項變更並未納入目前發布的版本,預計會在下一個版本中推出。
Navigation Testing Library
- 新增
navigationevent-testing
模組,為navigationevent
程式庫提供專用測試公用程式。(0e50b6) - 新增
TestNavigationEventCallback
虛擬公用程式類別以進行測試。這項服務會記錄回呼方法呼叫,並儲存收到的NavigationEvent
項目,以支援驗證。(4a0246) - 新增
TestNavigationEvent
虛擬公用程式函式,使用預設值建立NavigationEvent
執行個體,簡化導覽事件處理的單元測試。(3b63f5) - 新增
TestNavigationEventDispatcherOwner
虛擬公用程式類別以進行測試。這項工具會追蹤備援和啟用狀態變更事件計數,以便在測試中驗證互動。(c8753e)
API 變更
- 將
NavigationEventInputHandler
從androidMain
移至commonMain
,以便在 KMP 通用程式碼中使用。新增用於傳送事件的public send*
方法。將NavigationEventDispatcher
上的分派函式從public
變更為internal
;使用者現在必須使用NavigationEventInputHandler
傳送事件。(Ia7114) - 將
NavigationInputHandler
重新命名為OnBackInvokedInputHandler
。(I63405)
修正錯誤
- 重構
NavigationEventDispatcher
,避免中間清單分配作業,並提升回呼調度效能,藉此減少負擔。(I82702、I1a9d9) - 在
NavigationEvent
中將@FloatRange
註解新增至touchX
、touchY
和progress
欄位,在編譯時強制執行有效的值範圍,並提升 API 安全性。(Iac0ec)
1.0.0-alpha04 版本
2025 年 7 月 2 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha04
。1.0.0-alpha04 版包含這些修訂項目。
修正錯誤
- 使用
implementedInJetBrainsFork
進行navigationevent-compose
,並新增commonStubs
目標來配合 Compose 慣例。JetBrains 要求變更。(f60c79) - 修正 Kotlin/Native 的 Compose 編譯器外掛程式應用程式,確保正確產生 Stub。公用 API 或行為不受影響。(1890c9)
1.0.0-alpha03 版本
2025 年 6 月 18 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha03
。1.0.0-alpha03 版包含這些修訂項目。
新功能
- 推出新的
navigationevent-compose
模組,支援navigationevent
程式庫中的 Jetpack Compose 功能。(980d78) NavigationEvent
Compose 新增了LocalNavigationEventDispatcherOwner
本機組合。這個值可為空值,以更準確地判斷這個值是否可用在目前組合中。如果找不到底層擁有者,NavigationEventHandler
現在會擲回錯誤。(62ffda)NavigationEvent
Compose 新增了NavigationEventHandler
可組合函式,可處理 (預測返回手勢) 事件。提供Flow
的NavigationEvent
物件,這些物件必須在您提供的暫停 lambda 中收集 c42ba6:
NavigationEventHandler { progress: Flow<NavigationEvent> ->
// This block is executed when the back gesture begins.
try {
progress.collect { backEvent ->
// Handle gesture progress updates here.
}
// This block is executed if the gesture completes successfully.
} catch (e: CancellationException) {
// This block is executed if the gesture is cancelled
throw e
} finally {
// This block is executed either the gesture is completed or cancelled
}
}
API 變更
- 每個
NavigationEventCallback
現在一次只能向一個NavigationEventDispatcher
註冊;如果新增至多個調度器,系統會擲回IllegalStateException
。請注意,這項行為與OnBackPressedDispatcher
不同,後者允許多個調度工具。(e82c19) - 已建立
isPassThrough
的val
,以防止導覽期間發生突變,這可能會中斷NavigationEvent
的調度作業。(I0b287)
1.0.0-alpha02 版
2025 年 6 月 4 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha02
。1.0.0-alpha02 版包含這些修訂項目。
API 變更
- 使用預設引數取代
NavigationEventDispatcher
的次要建構函式。(I716a0) - 從「
NavigationEventCallback
」移除優先屬性。請改為將優先順序傳遞至NavigationEventDispatcher.addCallback()
。(I13cae)
修正錯誤
- 修正因同時修改可關閉項目的內部清單,而呼叫
NavigationEventCallback.remove()
時可能發生的ConcurrentModificationException
。(b/420919815)
1.0.0-alpha01 版
2025 年 5 月 20 日
發布 androidx.navigationevent:navigationevent-*:1.0.0-alpha01
。1.0.0-alpha01 版包含這些修訂項目。
新功能
androidx.navigationevent
程式庫提供以 KMP 為優先的 API,可處理系統返回動作和預測返回。NavigationEventDispatcher
可做為通用 API,用於註冊一或多個NavigationEventCallback
執行個體,以接收系統返回事件。- 這個層級位於
androidx.activity
中先前發布的 API 下方,旨在取代較高層級元件中的 Activity API,或直接使用 Android 架構OnBackInvokedDispatcher
API,成為更具彈性的替代方案。androidx.activity
API 已在 Navigation Event API 的基礎上重新編寫,成為 Activity 1.12.0-alpha01 的一部分。