轉場

為開始和結束版面配置的 UI 動作製作動畫。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2025 年 7 月 30 日 1.6.0 - - 1.7.0-alpha01

宣告依附元件

如果要為「轉場」新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.transition:transition:1.6.0"
    // Kotlin
    implementation "androidx.transition:transition-ktx:1.6.0"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.transition:transition:1.6.0")
    // Kotlin
    implementation("androidx.transition:transition-ktx:1.6.0")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.7 版

1.7.0-alpha01 版

2025 年 7 月 30 日

發布 androidx.transition:transition:1.7.0-alpha01androidx.transition:transition-ktx:1.7.0-alpha01。1.7.0-alpha01 版包含這些修訂項目

修正錯誤

  • 修正檢視區塊附加至 windowId 為空值的視窗時發生的異常終止問題。(I2ddf6)

1.6 版本

1.6.0 版

2025 年 4 月 23 日

發布 androidx.transition:transition:1.6.0androidx.transition:transition-ktx:1.6.0。1.6.0 版包含這些修訂項目

1.6.0-rc01 版

2025 年 3 月 26 日

發布 androidx.transition:transition:1.6.0-rc01androidx.transition:transition-ktx:1.6.0-rc01。1.6.0-rc01 版包含這些修訂項目

1.6.0-beta01 版

2025 年 3 月 12 日

發布 androidx.transition:transition:1.6.0-beta01androidx.transition:transition-ktx:1.6.0-beta01,此兩版與上一個 Alpha 版沒有差別。1.6.0-beta01 版包含這些修訂項目

1.6.0-alpha01 版本

2024 年 12 月 11 日

發布 androidx.transition:transition:1.6.0-alpha01androidx.transition:transition-ktx:1.6.0-alpha01。1.6.0-alpha01 版包含這些修訂項目

新功能

  • Transition 現在會為用於動畫轉場效果的 ViewOverlays 設定不相交的父項。這可透過不相交的父項解析擁有者,也就是說,您現在可以在轉移期間正確解析 ViewModels、生命週期等。(I10a16b/340894487b/287484338)

修正錯誤

  • 這個程式庫現在使用 JSpecify 空值註解,這些註解屬於型別用途。Kotlin 開發人員應使用下列編譯器引數,強制執行正確用法:-Xjspecify-annotations=strict (這是 Kotlin 編譯器 2.1.0 版的預設值)。(I1f54eb/326456246)
  • 移除手動列出新平台 API 存取權的步驟,因為使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,系統會透過 API 建模自動執行這項作業,而使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 時,所有建構作業都會自動執行這項作業。如果用戶端未使用 AGP,建議更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(Ia60e0b/345472586)

1.5 版本

1.5.1 版本

2024 年 7 月 24 日

發布 androidx.transition:transition:1.5.1androidx.transition:transition-ktx:1.5.1。1.5.1 版包含這些修訂項目

修正錯誤

  • 修正問題:如果可搜尋的轉場效果未啟動,系統會忽略對 animateToStart()animateToEnd() 的呼叫。(I44d96b/338624457)

1.5.0 版本

2024 年 5 月 1 日

發布 androidx.transition:transition:1.5.0androidx.transition:transition-ktx:1.5.0。1.5.0 版包含這些修訂項目

自 1.4.0 版以來的重要異動

  • API 34 以上版本支援轉場效果的搜尋功能。TransitionManager 新增了 controlDelayedTransition() API,可傳回 TransitionSeekController,以便搜尋 TransitionFragment 1.7.0 會使用這項功能,在您使用預測返回手勢時自動搜尋轉場效果。
  • 轉場效果新增了 getRootTransition() 方法,可傳回包含目前轉場效果的轉場效果,或目前轉場效果 (如果未包含在任何其他轉場效果中)。如果開發人員需要監聽器,在整個轉場效果開始或結束時觸發事件,這項功能就非常實用。
  • TransitionListeners 現在提供新的 onTransitionStart()onTransitionEnd() 監聽器,可讓開發人員瞭解轉換是否開始或結束,以及是否反向進行。如要開發具有 TransitionListeners 的可搜尋轉場效果,這點可能相當重要。

1.5.0-rc02 版

2024 年 4 月 17 日

發布 androidx.transition:transition:1.5.0-rc02androidx.transition:transition-ktx:1.5.0-rc02。1.5.0-rc02 版包含這些修訂項目

依附元件更新

  • 已將 Fragment 依附元件更新至 1.7.0-rc02 版,修正了如果將無法搜尋的共用元素新增至交易,且所有其他轉換都可搜尋,就會發生當機的問題。

1.5.0-rc01 版

2024 年 4 月 3 日

發布 androidx.transition:transition:1.5.0-rc01androidx.transition:transition-ktx:1.5.0-rc01。1.5.0-rc01 版包含這些修訂項目

1.5.0-beta01 版

March 20, 2024

發布 androidx.transition:transition:1.5.0-beta01androidx.transition:transition-ktx:1.5.0-beta01。1.5.0-beta01 版包含這些修訂項目

修正錯誤

  • 修正「片段」中的問題:以預測返回手勢中斷傳入的轉場效果時,會刪除進入的檢視畫面,可能導致螢幕空白。(Id3f22b/319531491)

1.5.0-alpha06 版

2024 年 1 月 10 日

發布 androidx.transition:transition:1.5.0-alpha06androidx.transition:transition-ktx:1.5.0-alpha061.5.0-alpha06 版包含此連結所列的修訂項目。

修正錯誤

  • 使用 TransitionSeekController.animateToStart() 時,新增的 TransitionListeners 現在會在 animateToStart() 提供 Runnable 後呼叫 onTransitionEnd()。(Ic6a55b/307624554)

依附元件更新

  • 片段依附元件已更新為 1.7.0-alpha08

1.5.0-alpha05 版

2023 年 11 月 29 日

發布 androidx.transition:transition:1.5.0-alpha05androidx.transition:transition-ktx:1.5.0-alpha051.5.0-alpha05 版包含此連結所列的修訂項目。

修正錯誤

  • 修正因設定共用元素轉換,但未一併設定 enter/exitTransition 而導致的 NullPointerException。(I8472b)
  • 修正問題:使用 Slide()animateToStart() 無法將 View 移回起始位置 (I698f4b/300157785)
  • 修正 Transition 中的重入問題,此問題會導致取消作業中斷。(Iddcceb/308379201)

1.5.0-alpha04 版

2023 年 10 月 4 日

發布了 androidx.transition:transition:1.5.0-alpha04 和 `androidx.transition:transition-ktx:1.5.0-alpha04。1.5.0-alpha04 版包含以下修訂項目。

API 變更

  • 破壞性變更 - animateToStart() 方法現在會採用 Runnable,用於將轉場檢視區塊還原為原始狀態。

1.5.0-alpha03 版

2023 年 9 月 20 日

發布 androidx.transition:transition:1.5.0-alpha03androidx.transition:transition-ktx:1.5.0-alpha031.5.0-alpha03 版包含以下修訂項目。

新功能

  • 現在搭配 Fragment 1.7.0-alpha05 使用時,Transition 可在 Android 14 裝置上支援應用程式內預測返回動畫。

修正錯誤

  • 修正投影片轉場效果中斷的錯誤。如果 Slide Transition 中斷進入轉換以移除 View,則會跳至錯誤位置。(I946f8b/297427333)

1.5.0-alpha02 版

2023 年 9 月 6 日

發布 androidx.transition:transition:1.5.0-alpha02androidx.transition:transition-ktx:1.5.0-alpha021.5.0-alpha02 版包含以下修訂項目。

新功能

  • TransitionSeekController 現在可讓您透過 setCurrentFragment(),將進度設為總時長的比例。(aosp/2647607)
  • TransitionSeekController 現在允許在呼叫 addOnProgressChangedListener 時,使用 animateToStart()animateToEnd() 觀察進度。(aosp/2647607)
  • 新增 TransitionManager.seekTo(),可使用場景搜尋轉場效果。(aosp/2647607)
  • 在搜尋轉場效果中新增以物理為基礎的動畫。這個追蹤器會使用 1 維速度追蹤器,透過 setCurrentFraction()setCurrentPlayTimeMillis() 追蹤進度變化,並將其用於 animateToStartanimateToEnd 的初始速度。(aosp/2647607)

修正錯誤

依附元件更新

  • 現在,轉場效果會使用 API 34 編譯。

1.5.0-alpha01 版本

2023 年 5 月 10 日

發布 androidx.transition:transition:1.5.0-alpha01androidx.transition:transition-ktx:1.5.0-alpha01。這個版本是在內部分支版本中開發而成。

新功能

  • API 34 以上版本支援轉場效果的搜尋功能。TransitionManager 新增了 controlDelayedTransition() API,可傳回 TransisionSeekController,用於搜尋 Transition。

API 變更

  • TransitionManager 有新的 controlDelayedTransition() 方法,可供應用程式在 API 34 以上版本中控制轉場動畫的進度。傳回的 TransitionSeekController 可讓開發人員瞭解轉場何時可供搜尋、動畫的持續時間,以及設定動畫的目前時間。controlDelayedTransition() 僅支援覆寫 isSeekable() 以傳回 true 的 Transition。
  • 轉場效果新增了 getRootTransition() 方法,可傳回包含目前轉場效果的轉場效果,或目前轉場效果 (如果未包含在任何其他轉場效果中)。如果開發人員需要監聽器,在整個轉場效果開始或結束時觸發事件,這項功能就非常實用。
  • TransitionListeners 現在提供新的 onTransitionStart()onTransitionEnd() 監聽器,可讓開發人員瞭解轉換是否開始或結束,以及是否反向進行。如要開發具有 TransitionListeners 的可搜尋轉場效果,這點可能相當重要。

修正錯誤

  • 轉場效果現在會在複製時複製其 TransitionListeners。也就是說,在 createAnimator() 期間新增的監聽器不會影響根 Transition。

1.4.1 版本

1.4.1 版本

2021 年 4 月 21 日

androidx.transition:transition:1.4.1androidx.transition:transition-ktx:1.4.1 發布。1.4.1 版包含此連結所列的修訂項目。

修正錯誤

  • 修正以下問題:在一個容器中啟動 Transition 時會意外暫停其他在獨立容器中運作的轉場,造成這些轉場永遠無法完成 (aosp/1664439b/182845041)

1.4.0 版本

1.4.0 版本

2021 年 1 月 27 日

androidx.transition:transition:1.4.0androidx.transition:transition-ktx:1.4.0 發布。1.4.0 版本包含這些修訂版本。

自 1.3.0 版以來的重大異動

  • transition-ktx 構件推出 Kotlin 擴充功能,可為 AndroidX Transition 執行個體新增事件監聽器 (b/138870873)。

1.4.0-rc01 版本

2020 年 12 月 2 日

androidx.transition:transition:1.4.0-rc01androidx.transition:transition-ktx:1.4.0-rc01 發布,沒有變更 1.4.0-beta01 的內容。1.4.0-rc01 版本包含這些修訂版本。

1.4.0-beta01 版本

2020 年 7 月 22 日

androidx.transition:transition:1.4.0-beta01androidx.transition:transition-ktx:1.4.0-beta01 發布,且自 1.4.0-alpha01 版以來皆無異動。1.4.0-beta01 版本包含這些修訂版本。

1.4.0-alpha01 版本

2020 年 6 月 24 日

androidx.transition:transition:1.4.0-alpha01androidx.transition:transition-ktx:1.4.0-alpha01 發布。1.4.0-alpha01 版本包含這些修訂版本。

新功能

  • transition-ktx 構件推出 Kotlin 擴充功能,可為 AndroidX Transition 執行個體新增事件監聽器 (b/138870873)。

1.3.1 版本

1.3.1 版本

2020 年 2 月 19 日

androidx.transition:transition:1.3.1 發布。查看 1.3.1 版的修訂項

修正錯誤

  • 修正以下錯誤:使用 ChangeTransform 時,部分動畫檢視畫面會發生不正確的裁剪 (b/148798452)

1.3.0 版本

1.3.0 版本

2020 年 1 月 22 日

androidx.transition:transition:1.3.0 發布。1.3.0 版本包含這些修訂版本

自 1.2.0 版以來的重要異動

  • 針對 Fragment 1.2.0 的改善項目:改善整合 Fragment 1.2.0 的狀況,確保「片段」的檢視畫面在轉場完成前不會刪除,而轉場在適當時間點會取消

1.3.0-rc02 版本

2019 年 12 月 4 日

androidx.transition:transition:1.3.0-rc02 發布。1.3.0-rc02 版本包含這些修訂版本

修正錯誤

  • 修正以下問題:在彈出隱藏的「片段」之後,檢視畫面會錯誤地標記為 INVISIBLE (b/70793925)。

1.3.0-rc01 版本

2019 年 10 月 23 日

androidx.transition:transition:1.3.0-rc01 發布,且自 1.3.0-beta01 版以來皆無異動。1.3.0-rc01 版本包含這些修訂版本

1.3.0-beta01 版本

2019 年 10 月 9 日

androidx.transition:transition:1.3.0-beta01 發布。1.3.0-beta01 版本包含這些修訂版本

新功能

  • 改善與 Fragment 1.2.0-beta01 的整合狀況,確保「片段」的檢視畫面在轉場完成前不會刪除,而轉場在適當時間點會取消 (aosp/1119841)。

1.2.0 版本

1.2.0 版本

2019 年 10 月 9 日

androidx.transition:transition:1.2.0 發布,且自 1.2.0-rc01 版以來皆無異動。1.2.0 版本包含這些修訂版本

1.1.0 版本以來的重要異動

如果您指定的 API 級別為 29,請使用這個版本。否則某些轉場作業將無法正常運作。這個版本不再使用反射呼叫,而是改用 API 級別 29 中添加的新公用方法。這是我們針對非 SDK 介面施加的限制的一部分。

1.2.0-rc01 版本

2019 年 9 月 5 日

androidx.transition:transition:1.2.0-rc01 發布,且自 1.2.0-beta01 版以來皆無異動。您可以前往這裡查看這個版本包含的修訂版本。

1.2.0-beta01 版本

2019 年 7 月 2 日

發布 androidx.transition:transition:1.2.0-beta01。您可以前往這裡查看這個版本包含的修訂版本。

新功能

  • 如果您指定 29 為 targetSdkVersion,就必須使用這個版本。否則某些轉場作業將無法正常運作。這個版本不再使用反射呼叫,而是改用 API 級別 29 中添加的新公用方法。這是我們針對非 SDK 介面施加的限制的一部分。

1.2.0-alpha01 版本

2019 年 5 月 7 日

androidx.transition:transition:1.2.0-alpha01 發布。

新功能

  • 如果您指定 Q 為 targetSdkVersion,就必須使用這個版本。否則某些轉場作業將無法正常運作。這個版本不再使用反射呼叫,而是改用 Q 中添加的新公用方法。這是我們針對非 SDK 介面施加的限制的一部分。

1.1.0 版本

1.1.0 版本

2019 年 7 月 2 日

發布了 androidx.transition:transition:1.1.0,且自 1.1.0-rc02 版以來皆無異動。您可以前往這裡查看這個版本包含的修訂版本。

1.1.0-rc02 版本

2019 年 6 月 5 日

發布 androidx.transition:transition:1.1.0-rc02。您可以前往這裡查看這個版本包含的修訂項目。

修正錯誤

  • 修正 TransitionManager.endTransitions() 以正確處理依附轉場 (aosp/946400)。

1.1.0-rc01 版本

2019 年 5 月 7 日

發布了 androidx.transition:transition:1.1.0-rc01。您可以前往這裡查看這個版本包含的修訂版本。

1.1.0-beta01 版本

2019 年 4 月 3 日

發布 androidx.transition:transition:1.1.0-beta01。您可以前往這裡查看這個版本包含的修訂項目。

修正錯誤

  • 修正 Visibility 中的 ViewGroupOverlay 快取錯誤,這發生於 API 級別 17 以下 (aosp/937350)

1.1.0-alpha02 版本

2019 年 3 月 13 日

發布了 androidx.transition:transition:1.1.0-alpha02。您可以前往這裡查看這個版本包含的修訂項目完整清單。

API 相關異動

  • 方法參數的 Scene.getCurrentScene() 類型已從 View 變更為 ViewGroup

修正錯誤

  • 如果透過 setStartDelay() 提供額外延遲,SidePropagation 就無法運作 (b/119839526)。
  • 如果在 API 21 之前遭到中斷,ChangeImageTransform 會套用錯誤的矩陣 (b/123226255)。
  • 在 API 21 之前某些情況下 ChangeTransform 會運作不正常 (b/125777978)。

1.1.0-alpha01 版本

2018 年 12 月 3 日

API 相關異動

  • aosp/807055:公開 Scene.getCurrentScene(View) 方法。允許您根據目前的情境撰寫自訂條件邏輯。

修正錯誤

  • 修正使用 TransitionManager 收合/展開 RecyclerView 中的項目時會當機的問題 (b/37129527)。
  • 修正套用兩種顯示轉場時造成動畫錯誤的問題 (b/62629600)。
  • 允許針對 TransitionSet 的子項覆寫時間長度和內插器等資料值 (b/64644617)。
  • 修正其他多項小錯誤。