Compose Animation

在 Jetpack Compose 應用程式中建構動畫,提供豐富的使用者體驗。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 3 月 20 日 1.6.4 - - 1.7.0-alpha05

結構

Compose 是由 androidx 中的 7 個 Maven 群組 ID 所組成。每個群組都包含一個指定目標的功能子集,分別有一組專屬的版本資訊。

下表提供各群組的說明和每組版本資訊的連結。

群組說明
compose.animation在 Jetpack Compose 應用程式中建構動畫,提供豐富的使用者體驗。
compose.compiler透過 Kotlin 編譯器外掛程式轉換 @Composable 函式,並啟用最佳化功能。
compose.foundation透過現成的構成元素編寫 Jetpack Compose 應用程式,然後進一步擴充基礎,建構出自己的設計系統元件。
compose.material運用現成的 Material Design 元件建構 Jetpack Compose UI。這是更高層級的 Compose 進入點,用意是確保提供的元件與 www.material.io 上所述元件相符。
compose.material3運用新一代的 Material Design 3 元件建構 Jetpack Compose UI。Material 3 提供新的主題設定和元件,以及動態色彩等 Material You 個人化功能,可呼應全新的 Android 12 視覺風格和系統 UI。
compose.runtimeCompose 程式設計模型和狀態管理的基本構成元素,以及 Compose Compiler 外掛程式指定的核心執行階段。
compose.ui與裝置互動所需的 Compose UI 基礎元件,包括版面配置、繪圖及輸入。

宣告依附元件

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

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

Groovy

dependencies {
    implementation "androidx.compose.animation:animation:1.6.4"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.animation:animation:1.6.4")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

意見回饋

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

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.7 版

1.7.0-alpha05 版

2024 年 3 月 20 日

發布 androidx.compose.animation:animation-*:1.7.0-alpha05。1.7.0-alpha05 版包含這些修訂版本

API 變更

  • SeekableTransitionState 會將 snapTo() 替換為 seekTo(),並新增 snapTo(),後者會在沒有任何動畫的情況下立即將狀態變更為目的地狀態。

1.7.0-alpha04 版

2024 年 3 月 6 日

發布 androidx.compose.animation:animation-*:1.7.0-alpha04。1.7.0-alpha04 版包含這些修訂版本

API 變更

  • 新的 API Path.reverse(),可反轉路徑的方向 (I36348)

1.7.0-alpha03 版

2024 年 2 月 21 日

發布 androidx.compose.animation:animation-*:1.7.0-alpha031.7.0-alpha03 版包含此連結所列的修訂項目。

新功能

  • 新的 Modifier.animateContentSize 會採用其他參數來對齊自訂內容對齊。(I5623ab/269803907)
  • 新的實驗性 DeferredTargetAnimation,可用於動畫大小、位置或任何其他在執行個體化期間不明的其他目標。(I60745)。

1.7.0-alpha02 版

2024 年 2 月 7 日

發布 androidx.compose.animation:animation-*:1.7.0-alpha021.7.0-alpha02 版包含此連結所列的修訂項目。

修正錯誤

  • 修正 KeyframesSpec 的相容性問題。(I2bdf3b/322214617)
  • 修正了在 LazyList 中使用 Modifier.animateContentSize 時無法正確重設的問題。(I070512b/322525716)
  • 已修正使用超出範圍時間戳記時 KeyframesSpecIllegalStateException(I341b8b/322839811)

1.7.0-alpha01 版

2024 年 1 月 24 日

發布 androidx.compose.animation:animation-*:1.7.0-alpha011.7.0-alpha01 版包含此連結所列的修訂項目。

1.6 版本

1.6.4 版

2024 年 3 月 20 日

發布 androidx.compose.animation:animation-*:1.6.4。1.6.4 版包含這些修訂版本

1.6.3 版

2024 年 3 月 6 日

發布 androidx.compose.animation:animation-*:1.6.3。1.6.3 版包含這些修訂版本

1.6.2 版

2024 年 2 月 21 日

發布 androidx.compose.animation:animation-*:1.6.21.6.2 版包含此連結所列的修訂項目。

1.6.1 版

2024 年 2 月 7 日

發布 androidx.compose.animation:animation-*:1.6.11.6.1 版包含此連結所列的修訂項目。

修正錯誤

1.6.0 版

2024 年 1 月 24 日

發布 androidx.compose.animation:animation-*:1.6.01.6.0 版包含此連結所列的修訂項目。

1.6.0-rc01 版

2024 年 1 月 10 日

發布 androidx.compose.animation:animation-*:1.6.0-rc011.6.0-rc01 版包含以下修訂項目。

1.6.0-beta03 版

2023 年 12 月 13 日

發布 androidx.compose.animation:animation-*:1.6.0-beta031.6.0-beta03 版包含以下修訂項目。

API 變更

  • 已從 AnimatedContentTransitionScope 中暫時移除 scaleInToFitContainerscaleOutToFitContainer,因為這些項目需要預先檢查。在日後推出的版本中,將預設功能設為啟用或導入前,即可查看相關功能。

1.6.0-beta02 版

2023 年 11 月 29 日

發布 androidx.compose.animation:animation-*:1.6.0-beta021.6.0-beta02 版包含以下修訂項目。

1.6.0-beta01 版

2023 年 11 月 15 日

發布 androidx.compose.animation:animation-*:1.6.0-beta011.6.0-beta01 版包含此連結所列的修訂項目。

API 變更

  • ExitTransition.Hold 已重新命名為 ExitTransition.KeepUntilTransitionsFinished 以提供更明確的資訊。(I1c490)。
  • 您現在可以使用 keyframesWithSpline 以單極斜體插入任何 N 維值。插入位置值 (例如 OffsetIntOffsetDpOffset) 特別實用。已新增為實驗性 API。

修正錯誤

  • ArcLine 中新增對「Sweep Gradient」的轉譯器支援。(I4d5bb)。
  • PageSize.Fixed 實作 equals 和雜湊碼。(Ie3edeb/300134276)
  • 修正視窗插邊變更的二進位檔相容性問題。(Iee695)。
  • 移除 Material3 方塊/按鈕的 Material 核心層,因為 Microbenchmark 可以在沒有效果的情況下顯示更好的效能。(I55555)。

1.6.0-alpha08 版

2023 年 10 月 18 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha081.6.0-alpha08 版包含此連結所列的修訂項目。

API 變更

  • 淘汰了 KeyframesSpecConfig#with,改為使用保留建構工具模式的 KeyframesSpecConfig#using。(I1d769)。

1.6.0-alpha07 版

2023 年 10 月 4 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha071.6.0-alpha07 版包含此連結所列的修訂項目。

API 變更

  • 固定和捲動式 Tabrows 現在有主要和次要變化版本。這些類別可正確對應至 Material3 中定義的顏色和指標行為。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 現在公開捲動狀態(Iec8f5b/260572337)

1.6.0-alpha06 版

2023 年 9 月 20 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha061.6.0-alpha06 版包含此連結所列的修訂項目。

1.6.0-alpha05 版

2023 年 9 月 6 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha051.6.0-alpha05 版包含此連結所列的修訂項目。

API 變更

  • 新增了 PathEasing,以便為加/減速曲線提供任意路徑。(Idb4b9)。

1.6.0-alpha04 版

2023 年 8 月 23 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha041.6.0-alpha04 版本包含以下修訂版本。

API 變更

  • 新增 SeekableTransitionState,讓開發人員控制轉換作業進度。(I8e69d)。

1.6.0-alpha03 版

2023 年 8 月 9 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha031.6.0-alpha03 版包含此連結所列的修訂項目。

API 變更

  • 新的進入/結束轉場效果,可以在進入/結束動畫期間,根據動畫容器的大小縮放內容。LookaheadScope 可組合函式變得更有趣且介面現在穩定了。(Ifb2ce)。

1.6.0-alpha02 版本

2023 年 7 月 26 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha021.6.0-alpha02 版包含此連結所列的修訂項目。

API 變更

  • 新增 ExitTransition.Hold,可顯示 AnimatedContent 的出站內容,直到進入和離開轉換都結束為止。(I5984f)。
  • 其他註解,用於指定允許可組合項的輸入值 (I51109)

1.6.0-alpha01 版

2023 年 6 月 21 日

發布 androidx.compose.animation:animation-*:1.6.0-alpha011.6.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 透過在可視度傳遞過程中回報目標大小,讓 Modifier.animateContentSizeAnimatedVisibility 完全整合到預測系統。

API 變更

  • IntrinsincMeasureScope 中的新屬性和其實作項目 (例如 MeasureScope),指出目前的測量過程是否為看頭傳遞。(I7a812)。

修正錯誤

  • 從彈簧效果中移除配置。(Ie9431)。
  • Enum.valueOf 的值參數名稱已變更 (Ia9b89)
  • 更多 enum valueOf 的擲回例外狀況 (I818fe)

1.5 版

1.5.4 版本

2023 年 10 月 18 日

發布 androidx.compose.animation:animation-*:1.5.41.5.4 版包含此連結所列的修訂項目。

1.5.3 版本

2023 年 10 月 4 日

發布 androidx.compose.animation:animation-*:1.5.3。這個版本沒有任何變更

1.5.2 版本

2023 年 9 月 27 日

發布 androidx.compose.animation:animation-*:1.5.21.5.2 版包含此連結所列的修訂項目。

1.5.1 版

2023 年 9 月 6 日

發布 androidx.compose.foundation:foundation-*:1.5.11.5.1 版包含此連結所列的修訂項目。

修正錯誤

  • 修正了在 readOnly 為 true 時顯示鍵盤的文字欄位。此外,也修正了當聚焦在 readOnly 從 true 變更為 false 時鍵盤無法顯示的問題(I34a19b/246909589)

1.5.1 版

2023 年 9 月 6 日

發布 androidx.compose.animation:animation-*:1.5.11.5.1 版包含此連結所列的修訂項目。

1.5.0 版

2023 年 8 月 9 日

發布 androidx.compose.animation:animation-*:1.5.01.5.0 版包含此連結所列的修訂項目

1.5.0-rc01 版

2023 年 7 月 26 日

發布 androidx.compose.animation:animation-*:1.5.0-rc011.5.0-rc01 版包含此連結所列的修訂項目

修正錯誤

  • 修正問題:在原始狀態類型 (例如 MutableIntState) 上呼叫 .value 時,系統會回報 Lint 警告,並提供無效的修正項目。檢查現在建議遷移至正確的資源。(Iba953b/287279257)

  • 您可以選擇執行檢查,建議將 mutableStateOf() 呼叫遷移至其對應基元的對應特殊類型。其 Lint ID 為 AutoboxingStateCreation。先前,所有專案都會預設啟用這項檢查功能。如要在 Android Studio 編輯器和專案的 Lint 輸出內容中查看這則警告,請在模組的 build.gradlebuild.gradle.kts 設定中宣告 warning "AutoboxingStateCreation",將嚴重性從資訊嚴重性變更為警告 (或更高),如下所示 (I34f7e):

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

1.5.0-beta03 版本

2023 年 6 月 28 日

發布 androidx.compose.animation:animation-*:1.5.0-beta031.5.0-beta03 版包含此連結所列的修訂項目。

1.5.0-beta02 版

2023 年 6 月 7 日

發布 androidx.compose.animation:animation-*:1.5.0-beta021.5.0-beta02 版包含此連結所列的修訂項目。

1.5.0-beta01 版

2023 年 5 月 24 日

發布 androidx.compose.animation:animation-*:1.5.0-beta011.5.0-beta01 版包含此連結所列的修訂項目

API 變更

  • 移除了重組、色彩動畫和 AndroidComposeView 中的配置 (Ib2bfa)

修正錯誤

  • 從彈簧動畫中移除配置 (Ie9431)

1.5.0-alpha04 版

2023 年 5 月 10 日

發布 androidx.compose.animation:animation-*:1.5.0-alpha041.5.0-alpha04 版包含此連結所列的修訂項目。

API 變更

  • AnimatedContent 現已支援 ContentKey,以便進一步控制轉換的生效時間。(Ic069b)。

1.5.0-alpha03 版

2023 年 4 月 19 日

發布 androidx.compose.animation:animation-*:1.5.0-alpha031.5.0-alpha03 版包含此連結所列的修訂項目。

新功能

  • LookaheadScopeSubcomposeLayout 的新預設行為。如此一來,沒有條件式版位 (例如 TabRowScaffoldBoxWithConstraints 等) 的 SubcomposeLayouts 就能與預先比較動畫完美搭配運作。

API 變更

  • 根據預設,新增的 intermediateMeasurePolicy 會重複使用 Lookahead 傳遞的評估政策,讓沒有條件式版位 (例如 ScaffoldTabRowBoxWithConstraints) 的 SubcomposeLayout 子類型能搭配 Lookahead 使用。(Id84c8)。
  • 使用 togetherWith 重新命名 infix 有趣的項目,以便結合進入和結束轉場效果。新增 AnimatedContentScope 做為內容 lambda 的接收器。(Ic39ae)。

1.5.0-alpha02 版

2023 年 4 月 5 日

發布 androidx.compose.animation:animation-*:1.5.0-alpha021.5.0-alpha02 版包含此連結所列的修訂項目

新功能

  • 新增實驗性 API,以支援 SubcomposeLayout 中的 Look 圖表。這可讓 SubcomposeLayoutLookaheadScope 中正常運作。我們即將為 SubcomposeLayout 的特定子類型提供更多立即可用的支援。

API 變更

  • 新增 SubcomposeLayout API,可運用額外的中繼測量政策,在 Lookahead 動畫期間處理測量/版面配置邏輯。(I017d3)。

1.5.0-alpha01 版

2023 年 3 月 22 日

發布 androidx.compose.animation:animation-*:1.5.0-alpha011.5.0-alpha01 版包含此連結所列的修訂項目

API 變更

  • AnimatedContent API 現在穩定版 AnimatedContentScope 已重新命名為 AnimatedContentTransitionScopescaleInscaleOut 現已成為穩定版 API。(Iaf54e)。

1.4 版

1.4.3 版本

2023 年 5 月 3 日

發布 androidx.compose.animation:animation:1.4.3androidx.compose.animation:animation-core:1.4.3androidx.compose.animation:animation-graphics:1.4.3,但沒有任何變更 (只有版本編號)。

1.4.2 版

2023 年 4 月 19 日

發布 androidx.compose.animation:animation:1.4.2androidx.compose.animation:animation-core:1.4.2androidx.compose.animation:animation-graphics:1.4.2,但沒有任何異動。1.4.2 版包含此連結所列的修訂項目。

1.4.1 版

2023 年 4 月 5 日

發布 androidx.compose.animation:animation:1.4.1androidx.compose.animation:animation-core:1.4.1androidx.compose.animation:animation-graphics:1.4.1,但沒有任何異動。1.4.1 版包含以下修訂項目。

1.4.0 版

2023 年 3 月 22 日

發布 androidx.compose.animation:animation:1.4.0androidx.compose.animation:animation-core:1.4.0androidx.compose.animation:animation-graphics:1.4.01.4.0 版包含此連結所列的修訂項目。

自 1.3.0 版以來的重要異動

  • rememberInfiniteTransitionInfiniteTransition 和 Transition (例如 InfiniteTransition#animateColor) 中的所有擴充功能函式皆支援工具標籤 (I56ef7)

1.4.0-rc01 版

2023 年 3 月 8 日

發布 androidx.compose.animation:animation:1.4.0-rc01androidx.compose.animation:animation-core:1.4.0-rc01androidx.compose.animation:animation-graphics:1.4.0-rc01,但沒有任何異動。1.4.0-rc01 版包含此連結所列的修訂項目。

1.4.0-beta02 版本

2023 年 2 月 22 日

發布 androidx.compose.animation:animation:1.4.0-beta02androidx.compose.animation:animation-core:1.4.0-beta02androidx.compose.animation:animation-graphics:1.4.0-beta02,但沒有任何異動。1.4.0-beta02 版包含此連結所列的修訂項目。

1.4.0-beta01 版

2023 年 2 月 8 日

發布 androidx.compose.animation:animation:1.4.0-beta01androidx.compose.animation:animation-core:1.4.0-beta01androidx.compose.animation:animation-graphics:1.4.0-beta01,但沒有任何異動。1.4.0-beta01 版包含此連結所列的修訂項目。

1.4.0-alpha05 版

2023 年 1 月 25 日

發布 androidx.compose.animation:animation:1.4.0-alpha05androidx.compose.animation:animation-core:1.4.0-alpha05androidx.compose.animation:animation-graphics:1.4.0-alpha051.4.0-alpha05 版包含此連結所列的修訂項目。

變更

  • 自上次 alpha 版以來,動畫庫無任何變更 (僅更新版本編號)

1.4.0-alpha04 版

2023 年 1 月 11 日

發布了 androidx.compose.animation:animation:1.4.0-alpha04androidx.compose.animation:animation-core:1.4.0-alpha04androidx.compose.animation:animation-graphics:1.4.0-alpha041.4.0-alpha04 版包含此連結所列的修訂項目。

新功能

  • rememberInfiniteTransition 以及 InfiniteTransitionTransition 上的所有擴充功能函式 (例如 InfiniteTransition#animateColor) 皆支援工具標籤 (I56ef7)

API 變更

  • InfiniteTransition#TransitionAnimationStateInfiniteTransition#animations API 現已公開。(I36682)

1.4.0-alpha03 版

2022 年 12 月 7 日

發布 androidx.compose.animation:animation:1.4.0-alpha03androidx.compose.animation:animation-core:1.4.0-alpha03androidx.compose.animation:animation-graphics:1.4.0-alpha031.4.0-alpha03 版包含此連結所列的修訂項目。

API 變更

  • 在使用 Compose 規則的 UI 測試中,系統會等所有影格回呼執行完畢,才會分派在 withFrameNanos 回呼期間恢復的連續作業。這與 Compose 正常執行時的行為相符。不過,仰賴舊行為的測試可能會失敗。這只會影響直接呼叫 withFrameNanoswithFrameMillis 的程式碼,並將回呼外的邏輯傳遞至可能需要在回呼內移動的函式。請參閱這份 CL 範例中的動畫測試變更。
  • 將選用的 onPerformTraversals: (Long) -> Unit 參數新增至 TestMonotonicFrameClock 建構函式和工廠函式,以便在 withFrameNanos 回呼之後和重新啟用呼叫端協同程式之前執行程式碼。(Idb413b/254115946b/222093277b/255802670)
  • AnimatedContent 中的工具標籤新參數 (Iebe2d)

1.4.0-alpha02 版

2022 年 11 月 9 日

發布 androidx.compose.animation:animation:1.4.0-alpha02androidx.compose.animation:animation-core:1.4.0-alpha02androidx.compose.animation:animation-graphics:1.4.0-alpha021.4.0-alpha02 版包含此連結所列的修訂項目。

API 變更

  • 新增 ToolingState,讓工具能變更 Composable 的內部狀態 (Ie6614)

1.4.0-alpha01 版

2022 年 10 月 24 日

發布 androidx.compose.animation:animation:1.4.0-alpha01androidx.compose.animation:animation-core:1.4.0-alpha01androidx.compose.animation:animation-graphics:1.4.0-alpha011.4.0-alpha01 版包含此連結所列的修訂項目。

修正錯誤

  • 修正 AnimatedContent 中不正確的中斷動畫 (b/238662479)

1.3 版

1.3.3 版

2023 年 1 月 11 日

發布 androidx.compose.animation:animation:1.3.3androidx.compose.animation:animation-core:1.3.3androidx.compose.animation:animation-graphics:1.3.31.3.3 版包含此連結所列的修訂項目。

  • 自 1.3.2. 以來沒有任何異動。

1.3.2 版

2022 年 12 月 7 日

發布 androidx.compose.animation:animation:1.3.2androidx.compose.animation:animation-core:1.3.2androidx.compose.animation:animation-graphics:1.3.21.3.2 版包含此連結所列的修訂項目。

修正錯誤

  • 已更新為可支援 androidx.compose.ui 1.3.2

1.3.1 版

2022 年 11 月 9 日

發布 androidx.compose.animation:animation:1.3.1androidx.compose.animation:animation-core:1.3.1androidx.compose.animation:animation-graphics:1.3.11.3.1 版包含此連結所列的修訂項目

1.3.0 版

2022 年 10 月 24 日

發布 androidx.compose.animation:animation:1.3.0androidx.compose.animation:animation-core:1.3.0androidx.compose.animation:animation-graphics:1.3.01.3.0 版包含此連結所列的修訂項目。

自 1.2.0 版以來的重要變更

  • 一組新的加/減速功能現可穩定運作

1.3.0-rc01 版

2022 年 10 月 5 日

發布 androidx.compose.animation:animation:1.3.0-rc01androidx.compose.animation:animation-core:1.3.0-rc01androidx.compose.animation:animation-graphics:1.3.0-rc011.3.0-rc01 版包含此連結所列的修訂項目。

1.3.0-beta03 版

2022 年 9 月 21 日

發布 androidx.compose.animation:animation:1.3.0-beta03androidx.compose.animation:animation-core:1.3.0-beta03androidx.compose.animation:animation-graphics:1.3.0-beta031.3.0-beta03 版包含此連結所列的修訂項目。

  • 自 1.3.0-beta02 以來沒有變更

1.3.0-beta02 版

2022 年 9 月 7 日

發布 androidx.compose.animation:animation:1.3.0-beta02androidx.compose.animation:animation-core:1.3.0-beta02androidx.compose.animation:animation-graphics:1.3.0-beta021.3.0-beta02 版包含此連結所列的修訂項目

  • 由於 Kotlin.experimental 已被淘汰,因此已從編譯器選項中移除

1.3.0-beta01 版

2022 年 8 月 24 日

發布 androidx.compose.animation:animation:1.3.0-beta01androidx.compose.animation:animation-core:1.3.0-beta01androidx.compose.animation:animation-graphics:1.3.0-beta011.3.0-beta01 版包含此連結所列的修訂項目

1.3.0-alpha03 版

2022 年 8 月 10 日

發布 androidx.compose.animation:animation:1.3.0-alpha03androidx.compose.animation:animation-core:1.3.0-alpha03androidx.compose.animation:animation-graphics:1.3.0-alpha031.3.0-alpha03 版包含此連結所列的修訂項目。

API 變更

  • CrossfadeanimateAsStateAnimatable 中的工具標籤新參數 (Iac08a)
  • 新增了 atFraction 函式,讓您在部分時段 (而非特定時間長度中) 定義主要畫面格 (I20c76b/232059455)。

1.3.0-alpha02 版

2022 年 7 月 27 日

發布 androidx.compose.animation:animation:1.3.0-alpha02androidx.compose.animation:animation-core:1.3.0-alpha02androidx.compose.animation:animation-graphics:1.3.0-alpha021.3.0-alpha02 版包含此連結所列的修訂項目。

1.3.0-alpha01 版

2022 年 6 月 29 日

發布了 androidx.compose.animation:animation:1.3.0-alpha01androidx.compose.animation:animation-core:1.3.0-alpha01androidx.compose.animation:animation-graphics:1.3.0-alpha011.3.0-alpha01 版包含此連結所列的修訂項目。

API 變更

  • 新增 LookaheadLayout,支援在實際測量/版面配置之前使用 Lookahead 傳遞。如此一來,就可以在版面配置變更時預先計算,讓 Lookahead 後測量/版面配置使用預先計算的大小/位置,以動畫方式呈現目標的大小和位置。目前尚不支援 SubcomposeLayouts,但會在即將推出的版本中推出。(I477f5)

1.2 版

1.2.1 版本

2022 年 8 月 10 日

發布 androidx.compose.animation:animation:1.2.1androidx.compose.animation:animation-core:1.2.1androidx.compose.animation:animation-graphics:1.2.11.2.1 版包含此連結所列的修訂項目。

1.2.0 版

2022 年 7 月 27 日

發布 androidx.compose.animation:animation:1.2.0androidx.compose.animation:animation-core:1.2.0androidx.compose.animation:animation-graphics:1.2.01.2.0 版包含此連結所列的修訂項目。

自 1.1.0 版以來的重要變更

  • 現在 Compose 動畫支援「開發人員選項」中的「動畫影片長度比例」設定。
  • 提供大量的全新實驗性加/減速曲線選項。
  • AnimatedImageVector 現在支援 repeatCountrepeatMode

1.2.0-rc03 版

2022 年 6 月 29 日

發布 androidx.compose.animation:animation:1.2.0-rc03androidx.compose.animation:animation-core:1.2.0-rc03androidx.compose.animation:animation-graphics:1.2.0-rc031.2.0-rc03 版包含此連結所列的修訂項目。

  • 自 1.2.0-rc02 以來沒有變更。

1.2.0-rc02 版

2022 年 6 月 22 日

發布 androidx.compose.animation:animation:1.2.0-rc02androidx.compose.animation:animation-core:1.2.0-rc02androidx.compose.animation:animation-graphics:1.2.0-rc021.2.0-rc02 版包含此連結所列的修訂項目。

修正錯誤

  • 移除加/減速功能的 ExperimentalEasingApi 註解 (Ied441)

1.2.0-rc01 版

2022 年 6 月 15 日

發布 androidx.compose.animation:animation:1.2.0-rc01androidx.compose.animation:animation-core:1.2.0-rc01androidx.compose.animation:animation-graphics:1.2.0-rc011.2.0-rc01 版包含此連結所列的修訂項目。

API 變更

  • Compose 程式庫中的介面現已使用 jdk8 預設介面方法建立 (I5bcf1)

1.2.0-beta03 版

2022 年 6 月 1 日

發布了 androidx.compose.animation:animation:1.2.0-beta03androidx.compose.animation:animation-core:1.2.0-beta03androidx.compose.animation:animation-graphics:1.2.0-beta031.2.0-beta03 版包含此連結所列的修訂項目。

API 變更

  • 新增實驗性的動畫調節曲線功能 (I64a38)

1.2.0-beta02 版

2022 年 5 月 18 日

發布 androidx.compose.animation:animation:1.2.0-beta02androidx.compose.animation:animation-core:1.2.0-beta02androidx.compose.animation:animation-graphics:1.2.0-beta021.2.0-beta02 版包含此連結所列的修訂項目。

1.2.0-beta01 版

2022 年 5 月 11 日

發布了 androidx.compose.animation:animation:1.2.0-beta01androidx.compose.animation:animation-core:1.2.0-beta01androidx.compose.animation:animation-graphics:1.2.0-beta011.2.0-beta01 版包含此連結所列的修訂項目。

  • 這是 1.2 版的第一個 Beta 版!自上次 Alpha 版以來沒有任何變更。

1.2.0-alpha08 版

2022 年 4 月 20 日

發布 androidx.compose.animation:animation:1.2.0-alpha08androidx.compose.animation:animation-core:1.2.0-alpha08androidx.compose.animation:animation-graphics:1.2.0-alpha081.2.0-alpha08 版包含此連結所列的修訂項目

1.2.0-alpha07 版

2022 年 4 月 6 日

發布了 androidx.compose.animation:animation:1.2.0-alpha07androidx.compose.animation:animation-core:1.2.0-alpha07androidx.compose.animation:animation-graphics:1.2.0-alpha071.2.0-alpha07 版包含此連結所列的修訂項目。

API 變更

1.2.0-alpha06 版

2022 年 3 月 23 日

發布 androidx.compose.animation:animation:1.2.0-alpha06androidx.compose.animation:animation-core:1.2.0-alpha06androidx.compose.animation:animation-graphics:1.2.0-alpha061.2.0-alpha06 版包含此連結所列的修訂項目。

API 變更

  • 更新向量可繪項目剖析,支援自動鏡像,亦即在目前版面配置的方向為 RTL 時翻轉 VectorPainter 的內容。(I79cd9b/185760237)

修正錯誤

  • 更新向量圖形 API 以使用適當的可組合註解 @VectorComposable,而非 @UiComposable (I942bc)

1.2.0-alpha05 版

2022 年 3 月 9 日

發布 androidx.compose.animation:animation:1.2.0-alpha05androidx.compose.animation:animation-core:1.2.0-alpha05androidx.compose.animation:animation-graphics:1.2.0-alpha051.2.0-alpha05 版包含此連結所列的修訂項目。

API 變更

  • 太棒了!現在 Compose 動畫支援「開發人員選項」中的「動畫影片長度比例」設定 (I5a4fcb/161675988)。

1.2.0-alpha04 版

2022 年 2 月 23 日

發布 androidx.compose.animation:animation:1.2.0-alpha04androidx.compose.animation:animation-core:1.2.0-alpha04androidx.compose.animation:animation-graphics:1.2.0-alpha041.2.0-alpha04 版包含此連結所列的修訂項目。

1.2.0-alpha03 版

2022 年 2 月 9 日

發布了 androidx.compose.animation:animation:1.2.0-alpha03androidx.compose.animation:animation-core:1.2.0-alpha03androidx.compose.animation:animation-graphics:1.2.0-alpha031.2.0-alpha03 版包含此連結所列的修訂項目

1.2.0-alpha02 版

2022 年 1 月 26 日

發布 androidx.compose.animation:animation:1.2.0-alpha02androidx.compose.animation:animation-core:1.2.0-alpha02androidx.compose.animation:animation-graphics:1.2.0-alpha021.2.0-alpha02 版包含此連結所列的修訂項目。

1.2.0-alpha01 版

2022 年 1 月 12 日

發布 androidx.compose.animation:animation:1.2.0-alpha01androidx.compose.animation:animation-core:1.2.0-alpha01androidx.compose.animation:animation-graphics:1.2.0-alpha011.2.0-alpha01 版包含此連結所列的修訂項目。

API 變更

  • 使用 AnimatedImageVector.animatedVectorResource 而不是 animatedVectorResource 載入 <animated-vector> 資源檔。
    • 使用 rememberAnimatedVectorResource 算繪 AnimatedImageVector,而不是使用 AnimatedImageVector#painterFor。(I9c300)

修正錯誤

  • 將 toString 方法新增至 Animatable 和 AnimationResult。(Icd3a6)

依附元件更新

  • 現在依附於 Kotlin 1.6.10

1.1 版

1.1.1 版

2022 年 2 月 23 日

發布 androidx.compose.animation:animation:1.1.1androidx.compose.animation:animation-core:1.1.1androidx.compose.animation:animation-graphics:1.1.11.1.1 版包含此連結所列的修訂項目

修正錯誤

1.1.0 版

2022 年 2 月 9 日

發布 androidx.compose.animation:animation:1.1.0androidx.compose.animation:animation-core:1.1.0androidx.compose.animation:animation-graphics:1.1.01.1.0 版包含此連結所列的修訂項目

自 1.0.0 版以來的重要變更

  • 穩定支援 Android 12 的過度捲動效果
  • 改善觸控目標縮放功能
  • 請注意,對於 Compose 1.0 版,Material 元件會展開版面配置空間,以符合 Material 無障礙功能準則對於觸控目標尺寸的規定。舉例來說,即使您將按鈕的尺寸設為小於最小尺寸 48x48 dp,系統仍會將按鈕的觸控目標擴大為這個尺寸。這樣一來,Compose Material 的行為就會與 Material Design 元件相同,在混用 Views 和 Compose 時便可確保行為一致。利用 Compose Material 元件建立使用者介面時,這項異動還能確保達到觸控目標無障礙功能的最低要求。
  • 穩定支援導覽邊欄
  • 將先前推出的一些實驗性 API 升級為穩定版
  • 支援更新版本的 Kotlin

1.1.0-rc03 版

2022 年 1 月 26 日

發布 androidx.compose.animation:animation:1.1.0-rc03androidx.compose.animation:animation-core:1.1.0-rc03androidx.compose.animation:animation-graphics:1.1.0-rc031.1.0-rc03 版包含此連結所列的修訂項目。

修正錯誤

  • 更新為可支援 Compose Material 1.1.0-rc03

1.1.0-rc01 版

2021 年 12 月 15 日

發布 androidx.compose.animation:animation:1.1.0-rc01androidx.compose.animation:animation-core:1.1.0-rc011.1.0-rc01 版包含此連結所列的修訂項目

API 變更

  • 使用 AnimatedImageVector.animatedVectorResource 而不是 animatedVectorResource 載入 <animated-vector> 資源檔。
    • 使用 rememberAnimatedVectorResource 算繪 AnimatedImageVector,而不是使用 AnimatedImageVector#painterFor。(I9c300)

1.1.0-beta04 版

2021 年 12 月 1 日

發布 androidx.compose.animation:animation:1.1.0-beta04androidx.compose.animation:animation-core:1.1.0-beta04androidx.compose.animation:animation-graphics:1.1.0-beta041.1.0-beta04 版包含此連結所列的修訂項目。

新功能

  • 更新為可與 Kotlin 1.6.0 相容

1.1.0-beta03 版

2021 年 11 月 17 日

發布了 androidx.compose.animation:animation:1.1.0-beta03androidx.compose.animation:animation-core:1.1.0-beta03androidx.compose.animation:animation-graphics:1.1.0-beta031.1.0-beta03 版包含此連結所列的修訂項目。

API 變更

  • 新增修飾符 Modifier.onPlaced,藉此觀察位置變更。您可以根據觀察到的位置變更,對子項修飾符的偏移進行額外變更 (I558fd)
  • 新增可支援 Crossfade 中 contentKey 的功能。動畫系統將使用 ContentKey 進行相等性檢查。因此,可以針對不同的狀態指定合適的 contentKey,藉此自訂狀態的差異比較。

    ContentKey 還可用作儲存及還原內容的按鍵。(I2e055b/197907070)

1.1.0-beta02 版

2021 年 11 月 3 日

發布 androidx.compose.animation:animation:1.1.0-beta02androidx.compose.animation:animation-core:1.1.0-beta02androidx.compose.animation:animation-graphics:1.1.0-beta021.1.0-beta02 版包含此連結所列的修訂項目。

修正錯誤

  • 新增支援工具的 Animation API。具體來說,這類 API 可讓工具檢查轉換中的動畫和動畫設定。(I4116e)

1.1.0-beta01 版

2021 年 10 月 27 日

發布 androidx.compose.animation:animation:1.1.0-beta01androidx.compose.animation:animation-core:1.1.0-beta01androidx.compose.animation:animation-graphics:1.1.0-beta011.1.0-beta01 版包含此連結所列的修訂項目

API 變更

  • 新增支援工具的 Animation API。具體來說,這類 API 可讓工具檢查轉換中的動畫和動畫設定。(I4116e)

1.1.0-alpha06 版

2021 年 10 月 13 日

發布 androidx.compose.animation:animation:1.1.0-alpha06androidx.compose.animation:animation-core:1.1.0-alpha06androidx.compose.animation:animation-graphics:1.1.0-alpha061.1.0-alpha06 版包含此連結所列的修訂項目

1.1.0-alpha05 版

2021 年 9 月 29 日

發布 androidx.compose.animation:animation:1.1.0-alpha05androidx.compose.animation:animation-core:1.1.0-alpha05androidx.compose.animation:animation-graphics:1.1.0-alpha051.1.0-alpha05 版包含此連結所列的修訂項目

API 變更

  • EnterTransitionExitTransition 和部分 AnimatedVisibility API 現已穩定。MutableTransitionState.isIdle也不再處於實驗階段。(I5072d)

  • 破壞性變更:Enter/ExitTransition 工廠中的 lambda 已移至參數清單中的最後一個位置。(I5072d)

1.1.0-alpha04 版

2021 年 9 月 15 日

發布 androidx.compose.animation:animation:1.1.0-alpha04androidx.compose.animation:animation-core:1.1.0-alpha04androidx.compose.animation:animation-graphics:1.1.0-alpha041.1.0-alpha04 版包含此連結所列的修訂項目

1.1.0-alpha03 版

2021 年 9 月 1 日

發布了 androidx.compose.animation:animation:1.1.0-alpha03androidx.compose.animation:animation-core:1.1.0-alpha03androidx.compose.animation:animation-graphics:1.1.0-alpha031.1.0-alpha03 版包含此連結所列的修訂項目。

新功能

  • 更新 Compose 1.1.0-alpha03,使其依附於 Kotlin 1.5.30。(I74545)

1.1.0-alpha02 版

2021 年 8 月 18 日

發布 androidx.compose.animation:animation:1.1.0-alpha02androidx.compose.animation:animation-core:1.1.0-alpha02androidx.compose.animation:animation-graphics:1.1.0-alpha021.1.0-alpha02 版包含此連結所列的修訂項目

API 變更

  • repeatable 和 infiniteRepeatable 現在可支援 StartOffset,作為動畫開始前延遲開始時間或快轉動畫的方式。此起始位移不會重複 (Ic679fb/195079908)
  • 新增的「進入/退出」轉場功能可縮放比例。這項功能可與其他類型的 Enter/ExitTransitions 搭配使用 (I372dab/191325593)。

1.1.0-alpha01 版

2021 年 8 月 4 日

發布 androidx.compose.animation:animation:1.1.0-alpha01androidx.compose.animation:animation-core:1.1.0-alpha01androidx.compose.animation:animation-graphics:1.1.0-alpha011.1.0-alpha01 版包含此連結所列的修訂項目。

API 變更

  • AnimatedImageVector 和相關 API 現已加入新的 androidx.compose.animation:animation-graphics 模組中。(I60873)

修正錯誤

1.0 版

1.0.5 版

2021 年 11 月 3 日

發布 androidx.compose.animation:animation:1.0.5androidx.compose.animation:animation-core:1.0.51.0.5 版包含此連結所列的修訂項目。

修正錯誤

  • 修正追蹤 derivedStateOf 例項時的異常終止問題 (aosp/1792247)。

1.0.4 版

2021 年 10 月 13 日

發布 androidx.compose.animation:animation:1.0.4androidx.compose.animation:animation-core:1.0.41.0.4 版包含此連結所列的修訂項目。

依附元件更新

  • 已更新為依附 Kotlin 1.5.31

1.0.3 版

2021 年 9 月 29 日

發布 androidx.compose.animation:animation:1.0.3androidx.compose.animation:animation-core:1.0.31.0.3 版包含此連結所列的修訂項目。

依附元件更新

  • 已更新為依附 Kotlin 1.5.30

1.0.2 版

2021 年 9 月 1 日

發布了 androidx.compose.animation:animation:1.0.2androidx.compose.animation:animation-core:1.0.21.0.2 版包含此連結所列的修訂項目。

更新為支援 Compose 1.0.2 版。Compose 1.0.2 仍與 Kotlin 1.5.21 相容。

1.0.1 版

2021 年 8 月 4 日

發布 androidx.compose.animation:animation:1.0.1androidx.compose.animation:animation-core:1.0.11.0.1 版包含此連結所列的修訂項目。

依附元件更新

  • 已更新為依附 Kotlin 1.5.21

1.0.0 版本

2021 年 7 月 28 日

發布了 androidx.compose.animation:animation:1.0.0androidx.compose.animation:animation-core:1.0.0查看 1.0.0 版的修訂項

1.0.0 的主要功能

這是 Compose 的第一個穩定版本。如需詳細資訊,請參閱官方的 Compose Release 網誌

已知問題

  • 如果使用的是 Android Studio Bumblebee Canary 4 或 AGP 7.1.0-alpha04/7.1.0-alpha05,則可能會遇到下列當機情形:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    如需修正這個問題,請暫時將 build.gradle 檔案中的 minSdkVersion 提高到 24 以上。Android Studio Bumblebee 和 AGP 7.1 的下一個版本會修正這個問題 (b/194289155)

1.0.0-rc02 版

2021 年 7 月 14 日

發布 androidx.compose.animation:animation:1.0.0-rc02androidx.compose.animation:animation-core:1.0.0-rc021.0.0-rc02 版包含此連結所列的修訂項目。

1.0.0-rc01 版

2021 年 7 月 1 日

發布 androidx.compose.animation:animation:1.0.0-rc01androidx.compose.animation:animation-core:1.0.0-rc01查看 1.0.0-rc01 版的修訂項

修正錯誤

1.0.0-beta09 版

2021 年 6 月 16 日

發布 androidx.compose.animation:animation:1.0.0-beta09androidx.compose.animation:animation-core:1.0.0-beta091.0.0-beta09 版包含此連結所列的修訂項目。

API 變更

  • 新增 AnimatedContent Composable。在進入新目標內容且退出初始內容過程中,利用可自訂的 ContentTransform 來管理其內容變更。可以混用不同的轉場效果 (包括轉入和轉出) 來自訂外觀和風格。在內容轉換過程中,AnimatedContent 會根據傳入內容自動調整動畫內容的大小。(I2c3df)
  • 已移除 ManualFrameClock。如要控制動畫,請改用 composeTestRule.mainClock。(I3c3e8b/189951065)

新增的設定檔規則

這個版本將設定檔規則新增至下列撰寫模組 (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

什麼是設定檔規則?

  • 程式庫的設定檔規則在位於 src/main 或同等目錄中的文字檔 baseline-prof.txt 內進行指定。該檔案會每行指定一個規則,這裡的規則是指對應至程式庫方法或類別的模式。這些規則所用語法是人類可讀形式的 ART 設定檔格式的超集,使用 adb shell profman --dump-classes-and-methods ... 時會用到這類格式。這些規則會採用兩種形式之一來指定方法或類別。

  • 方法規則將採用以下模式:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • 類別規則將採用以下模式:

    <CLASS_DESCRIPTOR>
    
  • 此處的 <FLAGS>HSP 之中的一或多個字元,用於指出這個方法應標記為「Hot」、「Startup」或「Post Startup」。

  • <CLASS_DESCRIPTOR> 是指定方法所屬的類別描述元。舉例來說,androidx.compose.runtime.SlotTable 類別的描述元是 Landroidx/compose/runtime/SlotTable;

  • <METHOD_SIGNATURE> 是方法的簽名,含有該方法的名稱、參數類型和傳回類型。舉例來說,LayoutNode 上的 fun isPlaced(): Boolean 方法含有 isPlaced()Z 簽名。

  • 這些模式可包含萬用字元 (***?),以便讓單一規則涵蓋多種方法或類別。

規則的用途

  • 方法中如果帶有 H 標記,表示這個方法是「Hot」方法,應該預先完成編譯。

  • 方法中如果帶有 S 標記,表示這是系統會在啟動時呼叫的方法,應該預先完成編譯,以免啟動時耗費資源處理編譯作業及解析方法。

  • 方法中如果帶有 P 標記,表示這是系統在啟動之後才會呼叫的方法。

  • 如果類別顯示在這個檔案中,表示系統會在啟動期間使用該類別,因此應該要事先在堆積中分配該類別,以免耗費載入類別的成本。

運作方式

  • 程式庫可以定義這些規則,並會包裝於 AAR 構件中。接著,系統會在建構包含這些構件的應用程式時,將這些規則合併起來,然後使用合併後的規則建構該應用程式專屬的精簡二進位 ART 設定檔。當該應用程式安裝在裝置上時,ART 便可以利用這個設定檔預先編譯特定應用程式子集,以提高應用程式效能,特別是首次執行的效能。請注意,這項設定不會對可偵錯的應用程式產生任何影響。

1.0.0-beta08 版

2021 年 6 月 2 日

發布了 androidx.compose.animation:animation:1.0.0-beta08androidx.compose.animation:animation-core:1.0.0-beta081.0.0-beta08 版包含此連結所列的修訂項目。

修正錯誤

  • detectDragGesuresdetectVerticalGesturesdetectHorizontalGestures 現在會自動使用位置變更,因此不必在 onDrag 回呼中呼叫 change.consumePositionChange (I42fc4b/185096350b/187320697)
  • 變更 Modifier.onGloballyPositioned(),系統會回報此修飾符在修飾符鏈結中的座標,而非套用所有修飾符後的版面配置座標。也就是說,修飾符的排序現在會影響系統回報的座標。(Ieb67db/177926591)

1.0.0-beta07 版

2021 年 5 月 18 日

發布 androidx.compose.animation:animation:1.0.0-beta07androidx.compose.animation:animation-core:1.0.0-beta071.0.0-beta07 版包含此連結所列的修訂項目。

API 變更

  • 新增的 AnimatedVisibility API 支援 MutableTransitionState 中指定的瀏覽權限。這個功能還可讓您透過 currentStateisIdleAnimatedVisibility 之外觀察動畫狀態。
    • 新增的下層轉換功能可在「Transition」(轉場) 中使用
    • 使用 AnimationScope.transition 支援 AnimatedVisibility 中的自訂退出/進入轉場動畫
    • 新增 animateEnterExit 修飾元,能為使用者提供所有下層的 AnimatedVisibility
    • 已淘汰使用 initiallyVisible 參數的 AnimatedVisibility API (I702f3)

1.0.0-beta06 版

2021 年 5 月 5 日

發布了 androidx.compose.animation:animation:1.0.0-beta06androidx.compose.animation:animation-core:1.0.0-beta061.0.0-beta06 版包含此連結所列的修訂項目。

1.0.0-beta05 版

2021 年 4 月 21 日

發布 androidx.compose.animation:animation:1.0.0-beta05androidx.compose.animation:animation-core:1.0.0-beta051.0.0-beta05 版包含此連結所列的修訂項目。

修正錯誤

  • ui-test-manifest 和 ui-tooling-data 中的 AndroidManifest 檔案現在與 Android 12 相容 (I6f9deb/184718994)

1.0.0-beta04 版

2021 年 4 月 7 日

發布 androidx.compose.animation:animation:1.0.0-beta04androidx.compose.animation:animation-core:1.0.0-beta041.0.0-beta04 版包含此連結所列的修訂項目。

API 變更

  • 移除 RowScopeColumnScopeBoxScopeBoxWithConstraintsScope 的公開例項。(I4e83eb/181869067)。

1.0.0-beta03 版

2021 年 3 月 24 日

發布 androidx.compose.animation:animation:1.0.0-beta03androidx.compose.animation:animation-core:1.0.0-beta031.0.0-beta03 版包含此連結所列的修訂項目。

1.0.0-beta02 版

2021 年 3 月 10 日

發布 androidx.compose.animation:animation:1.0.0-beta02androidx.compose.animation:animation-core:1.0.0-beta021.0.0-beta02 版包含此連結所列的修訂項目。

修正錯誤

1.0.0-beta01 版

2021 年 2 月 24 日

發布 androidx.compose.animation:animation:1.0.0-beta01androidx.compose.animation:animation-core:1.0.0-beta011.0.0-beta01 版包含此連結所列的修訂項目。

這是 Compose 1.0.0 Beta 版的第一個版本。

API 變更

  • InteractionState 已替換為 [Mutable]InteractionSource
    • 介面負責傳送/收集「互動」(Interaction) 事件。
    • 使用 interactionSource = remember { MutableInteractionSource() },而不是將 interactionState = remember { InteractionState() } 傳遞給 ButtonModifier.clickable() 等元件。
    • 應改用 InteractionSource 中的擴充功能函式,例如 InteractionSource.collectIs PressedAsState(),而不是:Interaction.Pressed in interactionState
    • 如果用途複雜,可以使用 InteractSource.interactions 來觀察互動的串流。如需詳細資訊,請參閱 InteractSource 的說明文件和範例
    • (I85965b/152525426b/171913923b/171710801b/174852378)
  • smoothScrollBy 和 scrollBy 方法的套件變更為 androidx.compose.foundation.gestures.* (I3f7c1b/175294473)
  • 已重新命名大小修飾符。將 Modifier.width/height/size 重新命名為 requiredWidth/requiredHeight/requiredSize。Modifier.PreferredWidth/PreferredHeight/recommendedSize 已重新命名為 width/height/size。(I5b414)
  • 螢幕方向已移至基礎套件。VelocirtTracker 已從 ui.gesture 移至 ui.input.pointer (Iff4a8b/175294473)
  • 已移除 AnimationClockObservable 和子類別。AnimatedFloat 也已移除。(Icde52b/177457083)
  • Modifier.draggable 現在接受 DraggableState,而非簡單的 lambda。您可以透過 rememberDraggableState { delta -> } 建立狀態,以取得與之前相同的行為 (Ica70fb/175294473)
  • 移除了 animate、animatedValue、AnimatedValue API (If27bcb/177457083)
  • 移除了 AnimationEndReason.Interrupted。如果動畫中斷,系統會擲回 CancellationException (I2cbbcb/179695417)
  • 移除了 TargetAnimation API。(If47d1b/177457083)

1.0.0-alpha12 版

2021 年 2 月 10 日

發布了 androidx.compose.animation:animation:1.0.0-alpha12androidx.compose.animation:animation-core:1.0.0-alpha121.0.0-alpha12 版包含此連結所列的修訂項目。

API 變更

  • Modifier.pointerInput 現要求記憶按鍵,藉此指出指標輸入內容偵測協同程式何時應重新啟動,以建立新的依附元件。(I849cd)
  • 邊界已重新命名為 DpRect (I4b32a)
  • 在整個動畫系統中,將 AnimationSpec 的參數名稱統一為 animationSpec。同時,限制 Enter/ExitMigration,使其接受 FiniteAnimationSpec。(Ie47c5b/177457083)
  • Animatable.snapTo 和 Animatable.stop 現在為暫止函式 (If4288)
  • 如同我們先前移除 state { 0 } 可組合項且現在鼓勵使用 remember { mutableStateOf(0) } 等項目,我們也將移除 savedInstanceState { 0 } 可組合項。請改用 rememberSaveable { mutableStateOf(0) },這樣只要 MutableState 內使用的類型可儲存在套裝組合中,就能自動儲存並還原。如果之前傳遞的是自訂儲存工具物件,現在需使用含有 stateSaver 參數的全新 rememberSaveable 超載。用法將如下所示:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26b/177338004)
  • 更新了 Crossfade 的方法簽章,使其與動畫系統的其餘部分更加一致。(Ib05edb/177457083)
  • rememberSaveInstanceState() 已重新命名為 rememberSaveable(),並移至 androidx.compose. runtime.saveable 套件。(I1366eb/177338004)
  • RestorableStateHolder 已重新命名為 SaveableStateHolder,並移至 androidx.compose.runtime.saveable 套件。內部方法 RestorableStateProvider 已重新命名為 SaveableStateProvider。Generic 類型已移除,可直接將 Any 以索引鍵格式傳遞,不再需要使用實驗性註解。(I0902eb/174598702)
  • 更新了 Modifier.animateContentSize API,使其與動畫系統的其餘部分一致。(I0bf75b/177457083)
  • AnimatedValue/Float 現已淘汰。請改用 Animatable (I71345b/177457083)
  • tapGestureFilter、doubleTapGestureFilter、longPressGestureFilter 和 pressIndicaitonGestureFilter 已淘汰,請改用 Modifier.clickable 或 Modifier.pointerInput 搭配 DetectionTapTouchs 函式。(I6baf9b/175294473)
  • 推出將套用於無限動畫的 InfiniteAnimationPolicy 協同程式結構定義元素。 根據預設,系統不會安裝任何政策,除非使用 ComposeTestRule 執行測試。(I50ec4b/151940543)
  • Destructuring 和 copy() 方法在幾個類別中極少使用,現已將其從中移除。(I26702b/178659281)
  • 動畫中的播放時間現已統一為奈秒 (If776a)
  • Compose:runtime-fulfillment 構件現已淘汰。 目前可在 compose:runtime 中找到 MonotonicFrameClock,而 AndroidUiDispatcher 則可在 compose:ui 中找到。(Ib5c36)。
  • 新增了 Animation.isInfiniteVectorizedAnimationSpec.isInfinite,可示意動畫是否為無限。這可在導入動畫時,用於對這類動畫進行特殊處理。例如顯示特殊的「剩餘時間」訊息,或是在測試期間取消動畫,避免無限期地等待閒置時間。(Iebb05b/151940543)
  • 使用 Long 而不是 Uptime 作為動畫時間類型 (Ie3aa7b/177420019)

1.0.0-alpha11 版

2021 年 1 月 28 日

發布 androidx.compose.animation:animation:1.0.0-alpha11androidx.compose.animation:animation-core:1.0.0-alpha111.0.0-alpha11 版包含此連結所列的修訂項目。

API 變更

  • 淘汰了 TransitionDefinition-based Transition (I0ac57)
  • 系統會針對「Transition」(轉場) 和子動畫新增要在工具中顯示的標籤欄位 (I619fb)
  • animateAsState 現已改為 animateFooAsState,其中 Foo 是增加動畫效果的變數類型。例如 Float、Dp、Offset 等 (Ie7e25)
  • 新增的 InfiniteMigration 會執行任意數量的子動畫。(I1da81)
  • 將 Material 有狀態參數介面變更為使用 @Composable 函式來傳回 State<T>。新增 Animatable.asState(),更易於將 Animatable 轉換為狀態。一併變更 animateElevation,使其成為 Animatable 上的停權擴充功能。(If613c)

修正錯誤

  • 淘汰 onCommit、onDispose 和 onActive,並改用 SideEffect 和 DisposableEffect API (If760e)
  • 現在支援 updateTransition 中的初始狀態 (Ifd51d)
  • 為圖片和圖示新增了內容說明參數。用於為無障礙功能服務提供說明 (I2ac4c)
  • 現已淘汰 invalidate 和 ContentReference(),並改用 CurrentRecomposeScope 和 RememberCompositionReference。(I583a8)
  • Duration 與 Uptime 將替換為 Long 毫秒,這個步驟移除針對這些類別的指標輸入內容的依附元件。(Ia33b2b/175142755b/177420019)
  • 您現在可以在組合項外建立可點選、可切換和可選取的項目 (I0a130b/172938345b/175294473)
  • 加/減速已變更為功能介面 (Ib14e5)
  • 為 LazyColumn/LazyRow/LazyVerticalGrid 的範圍新增 items(count: Int) 工廠方法。items(items: List)itemsIndexed(items: List) 現已成為擴充功能函式,因此在使用時必須手動匯入。陣列 (Arrays) 的新擴充功能多載:items(items: Array) 和 itemsIndexed(Array) (I803fcb/175562574)
  • 運用 TestCoroutineDispatcher 進行測試 (I532b6)
  • 已移除 PointerInputData 並修改 PointerInputChange,為其提供所有 PointerInputData 的欄位。將 PointerInputEvent 和 PointerInputEventData 改為內部使用,因為這些並未用於任何公用 API (Ifff97b/175142755)

1.0.0-alpha10 版

2021 年 1 月 13 日

發布了 androidx.compose.animation:animation:1.0.0-alpha10androidx.compose.animation:animation-core:1.0.0-alpha101.0.0-alpha10 版包含此連結所列的修訂項目。

API 變更

  • 已將 Velocity 修改成為具有元件部分和數學運算。(Ib0447)
  • @ExperimentalTesting 重新命名為 @ExperimentalTestApi,以便與類似的實驗 API 註解保持一致 (Ia4502b/171464963)
  • 將 Position 重新命名為 DpOffset 並移除了 getDistance() (Ib2dfd)
  • 移除 Any.identityHashCode() 公用 API (I025d7)

修正錯誤

  • 新增以協同程式為主的 API Animatable,可確保動畫之間的互斥性。新增 DecayAnimationSpec,可支援多維度衰減動畫 (I820f2b/168014930)
  • animate() 現已更換為 animateAsState(),後者會傳回 State<T> 而非 T。這樣系統會將無效範圍縮小至讀取 State 值的位置,因此可以提升效能 (Ib179e)

1.0.0-alpha09 版

2020 年 12 月 16 日

發布 androidx.compose.animation:animation:1.0.0-alpha09androidx.compose.animation:animation-core:1.0.0-alpha091.0.0-alpha09 版包含此連結所列的修訂項目。

API 變更

  • 將 Dp.VectorConverter、Position.VectorConverter 等移到了 animation-core,並淘汰了舊的 VectorConveters (If0c4b)
  • 推出了一組全新的「Transition」(轉場) API,不僅更易於使用,也支援動態新增的動畫和動態計算的動畫目標。為了容易與以TransformerDefinition 為主的 API 有所區分,我們將這一組 API 標示為實驗性。(Ia7fe3)

修正錯誤

  • 現在,偏移修飾符中的 lambda 會傳回 IntOffset,而非 Float (Ic9ee5b/174137212b/174146755)
  • 淘汰了 LazyColumnFor、LazyRowFor、LazyColumnForIndexed 和 LazyRowForIndexed。請改用 LazyColumn 和 LazyRow (I5b48c)
  • 為暫停指標輸入 API,我們將 HandlePointerInputScope 重新命名為 AwaitPointerEventScope,並將 handlePointerInput() 重新命名為 awaitPointerEventScope() (Idf0a1b/175142755)
  • 新增用於建立 InfiniteRepeatableSpec 的 infiniteRepeatable 函式 (I668e5)
  • 移除 ExperimentalPointerInput 註解 (Ia7a24)

1.0.0-alpha08 版

2020 年 12 月 2 日

發布 androidx.compose.animation:animation:1.0.0-alpha08androidx.compose.animation:animation-core:1.0.0-alpha081.0.0-alpha08 版包含此連結所列的修訂項目。

API 變更

  • 新增了針對可組合 lambda 參數命名方式和位置的 Lint 檢查,以檢查是否與 Compose 準則一致。另外也根據 Lint 檢查和指引,將部分使用 children 做為結尾 lambda 名稱的 API 遷移至 content (Iec48e)
  • 移除了之前已淘汰的 API:
    • 已移除 Modifier.onPositioned,請使用 Modifier.onGloballyPositioned
    • 已移除 Modifier.onDraw,請使用 Modifier.onDrawBehind
    • 已移除 Modifier.plus,請使用 Modifier.then
    • 已移除 Color.Unset,請使用 Color.Unspecified
    • 已移除 PxBounds 類別,請改用 Rect
    • (Ie9d02b/172562222)
  • 暫時新增選項,讓 MonotonicFrameClock 執行 TestAnimationClock (I1403bb/173402197)。

修正錯誤

  • 將 Modifier.drawLayer 重新命名為 Modifier.graphicsLayer,並且根據 API 委員會的意見回饋,將相關類別更新為 GraphicsLayer (I0bd29b/173834241)
  • 新增了 Modifier.scale/rotate API,作為 DrawLayer 的便捷 API。
    • 將 Modifier.drawOpacity 重新命名為 Modifier.alpha
    • 將 Modifier.drawShadow 重新命名為 Modifier.shadow (I264cab/173208140)
  • 將 PointerInputData 的運作時間與位置欄位設為不可為空值 (Id468a)
  • shiftPx 修飾符已重新命名為 offset,且現已改用 lambda 參數,而非 State (Ic3021b/173594846)
  • 新增可在協同程式中執行動畫的 API (Ied662)
  • 淘汰在名稱後綴使用 Ambient 的 Ambient,並按照其他 Ambient 和 Compose API 準則的規範,改成在名稱前綴使用 Ambient 的新屬性。(I33440)
  • 測試中的時間控制項 (TestAnimationClock 及其用例) 處於實驗階段 (I6ef86b/171378521)
  • 移除舊的 ui-test 模組及其虛設常式 (I3a7cb)
  • RestorableStateHolder.withRestorableState 函式已重新命名為 RestorableStateProvider (I66640)
  • 更新了 Alignment 介面,並使其可正常運作 (I46a07b/172311734)

1.0.0-alpha07 版

2020 年 11 月 11 日

發布 androidx.compose.animation:animation:1.0.0-alpha07androidx.compose.animation:animation-core:1.0.0-alpha071.0.0-alpha07 版包含此連結所列的修訂項目。

修正錯誤

  • 淘汰了 AmbientTextStyle、ProvideTextStyle 和 AmbientContentColor 基礎。請改用 Material 程式庫中可提供的新版本。對於非 Material 應用程式,您應建立自己的設計系統專屬主題設定環境,並在自己的元件中使用 (I74accb/172067770)
  • 已淘汰 foundation.Text,並替換為 material.Text。如要瞭解不使用主題值的無預設立場基本文字 API,請參閱 androidx.compose.foundation.BasicText (If64cb)
  • 將 MeasureResult 從 MeasureScope 中移出。(Ibf96db/171184002)
  • 將數個版面配置相關符號從 androidx.compose.ui 移至 androidx.compose.layout.ui (I0fa98b/170475424)。

1.0.0-alpha06 版

2020 年 10 月 28 日

發布了 androidx.compose.animation:animation:1.0.0-alpha06androidx.compose.animation:animation-core:1.0.0-alpha061.0.0-alpha06 版包含此連結所列的修訂項目。

API 變更

  • 在 ComposeTestRule 中啟用轉場功能,並從 ComposeTestRule 中移除啟用閃爍游標的選項。(If0de3)

1.0.0-alpha05 版

2020 年 10 月 14 日

發布 androidx.compose.animation:animation:1.0.0-alpha05androidx.compose.animation:animation-core:1.0.0-alpha051.0.0-alpha05 版包含此連結所列的修訂項目。

API 變更

  • 新增了動畫介面和子類別:這些類別會儲存動畫的開始和結束條件,因此只能透過播放時間查詢值和速度 (Ie95bdb/163329867)

修正錯誤

  • 將 OnPositionedModifier 重新命名為 OnGloballyPositionedModifier,並將 onPositioned() 重新命名為 onGloballyPositioned() (I587e8b/169083903)。
  • 淘汰 contentColor() 和 currentTextStyle() API,然後分別以 AmbientContentColor 和 AmbientTextStyle 環境取代。與搭配使用其他環境時一樣,您可以對環境屬性使用 .current,藉此存取目前的值。這項變更的用意是要維持一致性,避免採用多種方式來完成同一件事。此外,部分環境屬性已重新命名,以便清楚描述其用途,如下所示:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

1.0.0-alpha04 版

2020 年 10 月 1 日

發布了 androidx.compose.animation:animation:1.0.0-alpha04androidx.compose.animation:animation-core:1.0.0-alpha041.0.0-alpha04 版包含此連結所列的修訂項目。

API 變更

  • 為 rootAnimationClockFactory、transitionsEnabled、blinkingCursorEnabled 和 textInputServiceFactory 加上 @VisibleForTesting 註解,將其設為內部 API 並隱藏其 kdoc (I554ebb/168308412)

修正錯誤

  • 更新了多個圖形 API
    • 更新縮放和旋轉功能的轉換 API,改用單一 Offset 參數代表樞紐座標,而非使用 DrawScope 和 DrawTransform 中 x/y 座標的個別浮點參數
    • 移除了 Rect.expandToInclude 和 Rect.join 方法
    • 更新 Radius 說明文件,一併介紹橢圓形和卵形
    • 新增說明文件,指出無須直接呼叫內嵌 Radius 類別的公開建構函式,而是應該透過函式建構函式將 Radius 物件例項化
    • 移除了用於查詢 topRight、bottomRight、bottomCenter 等的 roundRect API
    • 淘汰了 Rect.shift,改用 Rect.translate
    • 移除了 RoundRect.grow 和 Rect.shrink API
    • RoundRect.outerRect 已重新命名為 Rect.boundingRect
    • 移除了 RoundRect.middleRect/tallMiddleRect/wideMiddleRect 和 Rect.isStadium 方法
    • 已將 RoundRect.longestSide 重新命名為 RoundRect.maxDimension
    • 已將 RoundRect.shortestSide 重新命名為 RoundRect.minDimension
    • 已將 RoundRect.center 變更為屬性,而非函式
    • 將 RoundRect 建構函式更新為使用 Radius 屬性,而非 x/y 半徑值的個別參數
    • 移除了 Size API,假設其為原點 0,0 的矩形
    • 在 Radius 中新增銷毀 API
    • 將各種 RoundRect 擴充功能函式移轉為屬性
    • (I8f5c7b/168762961)
  • foundation.Box 已淘汰,請改用 foundation.layout.Box。(Ie5950b/167680279)
  • 將 Stack 重新命名為 Box。我們將淘汰原本已有的 Box,改用 compose.foundation.layout 中的新 Box。新 Box 會在擁有多個子項時,將子項逐一向上堆疊,這個行為模式與舊 Box 不同,舊版的行為類似於 Column (I94893b/167680279)。
  • 淘汰了 Box 裝飾參數。如要為方框加上裝飾/邊框間距,請改用 Modifier (Modifier.background、Modifier.border、Modifier.padding) (Ibae92b/167680279)
  • 我們已阻止靜態匯入版面配置範圍的內容 (例如 RowScopes 中的 alignWithSiblings)。請改用明確範圍替代項:with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } (I216beb/166760797)

1.0.0-alpha03 版

2020 年 9 月 16 日

發布 androidx.compose.animation:animation:1.0.0-alpha03androidx.compose.animation:animation-core:1.0.0-alpha031.0.0-alpha03 版包含此連結所列的修訂項目

修正錯誤

  • 版面配置 API 中用到 gravity 的部分已統一改成 align 或 alignment (I2421ab/164077038)

1.0.0-alpha02 版

2020 年 9 月 2 日

發布 androidx.compose.animation:animation:1.0.0-alpha02androidx.compose.animation:animation-core:1.0.0-alpha021.0.0-alpha02 版包含此連結所列的修訂項目。

API 變更

  • 新增 ManualFrameClock.hasAwaiters,方便查看是否有任何項目正在等待相應時鐘的框架。在執行需要使用 ManualFrameClock 的測試時,請以 runWithManualClock 取代 runBlocking。此外,TestUiDispatcher.Main 可讓您在測試中輕鬆存取主要使用者介面調度程式。

    例如:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85bb/161247083)

修正錯誤

  • 淘汰 onPreCommit。onCommit 的行為現在與 onPreCommit 相同。

    現在,onCommit 和 onActive 會在已提交組合變更的同一個 Choreographer 畫面中執行,而不是在下一個 Choreographer 畫面開始時執行。(I70403)

1.0.0-alpha01 版

2020 年 8 月 26 日

發布 androidx.compose.animation:animation:1.0.0-alpha01androidx.compose.animation:animation-core:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

0.1.0-dev 版

0.1.0-dev17 版

2020 年 8 月 19 日

發布 androidx.compose.animation:animation:0.1.0-dev17androidx.compose.animation:animation-core:0.1.0-dev170.1.0-dev17 版包含此連結所列的修訂項目。

新功能

API 變更

  • Offset 現在是內嵌類別 (Iaec70)
  • IntOffset 現在是內嵌類別 (Iac0bf)
  • IntSize 現已成為內嵌類別 (I2bf42)
  • AnimatedVisibilty 可組合項為子項內容的顯現和消失加入動畫效果。

    推出 EnterTransition 和 ExitTransition,可與 AnimatedVisibilty 可組合項搭配使用,提供 3 種不同類型的顯現和消失動畫效果:淡出、滑動以及放大/縮小內容。可以將不同類型的動畫組合在一起,以呈現更獨樹一幟的外觀和風格。(Idda11)

  • 淘汰了 PxBounds,改用 Rect。以 Rect 更新所有 PxBounds 使用情況,並透過註解加入適當的淘汰/取代作業,協助完成遷移 (I37038b/162627058)

修正錯誤

  • PlacementScope.placeAbsolute() 重新命名為 PlacementScope.place(),而原先的 PlacementScope.place() 則重新命名為 PlacementScope.placeRelative()。因此,PlacementScope.place() 方法不再以由右至左的結構定義自動鏡射位置。如果需要這個方法,請改用 PlacementScope.placeRelative()。(I873acb/162916675)
  • 淘汰 state { ... } 可組合項,改為明確呼叫 remember { mutableStateOf(...) } 以求一目瞭然。 這樣可以減少管理狀態所需的整體 API 介面和概念數量,且符合類別屬性委派作業的 by mutableStateOf() 模式。(Ia5727)

0.1.0-dev16 版

2020 年 8 月 5 日

發布 androidx.compose.animation:animation:0.1.0-dev16androidx.compose.animation:animation-core:0.1.0-dev160.1.0-dev16 版包含此連結所列的修訂項目。

API 變更

  • 現在,可以透過 Foo.VectorConverter 存取用於轉換內建裝置的內建向量圖形轉換工具。例如 Dp.VectorConverterColor.VectorConverterFloat.VectorConverter 等 (I3e273)
  • 支援在 Modifier.animateContentSize() 中使用結束事件監聽器,當尺寸改變的動畫播放完畢時,事件監聽器就會收到通知,當中包括動畫的開始/結束尺寸 (I277b2)
  • 新增 animateContentSize 修飾符,可為其子項修飾符的版面配置大小變化加入動畫效果 (Ieffdc)
  • 新增 MonotonicFrameAnimationClock,讓您將 MonotonicFrameClock 當做 AnimationClockObservable 使用,為協同程式型新版時鐘與仍使用回呼型舊版時鐘的 API 消除兩者之間的差異。

    ManualAnimationClockMonotonicFrameClock 等效函式現在是 ManualFrameClock (I111c7b/161247083)。

修正錯誤

  • 更新了支援版面配置由右至左的 API。新增了 LayoutDirectionAmbient,可用於讀取及變更版面配置方向。移除了 Modifier.rtl 和 Modifier.ltr。(I080b3)
  • 要求為 transitionDefinition 明確指定 T 類型。(I1aded)
  • foundation.shape.corner 套件已扁平化為 foundation.share (I46491b/161887429)
  • 淘汰 Modifier.plus,並改用 Modifier.then。「Then」可以更明確地指出先後執行順序,同時還禁止輸入會破壞鏈結且降低可讀性的 Modifier.padding().background() + anotherModifier (Iedd58b/161529964)
  • 將 Modifier.drawBackground 重新命名為 Modifier.background (I13677)

0.1.0-dev15 版

2020 年 7 月 22 日

發布 androidx.compose.animation:animation:0.1.0-dev15androidx.compose.animation:animation-core:0.1.0-dev150.1.0-dev15 版包含此連結所列的修訂項目。

依附元件更新

  • 如要使用 0.1.0-dev15 版的 Compose,您必須依據上方「宣告依附元件」一節所示的新程式碼片段更新依附元件。

API 變更

  • 改變了 Transition API,用於回傳 TransitionState,而不是將 TransitionState 傳遞至子項。這項改變讓 API 與 animate() API 更加一致 (I24e38)
  • 新增了適用於 Crossfade 的輔助鍵參數 (I87cfeb/159706180)
  • 在頂層 API 中使用 AnimationSpec 而不是 AnimationBuilder 來闡明靜態動畫規範的概念
    • 改善轉換 DSL (領域特定語言),在建立補間動畫、彈性動畫等 AnimationSpecs 時,已不再需要 lambda。反而直接使用建構函式參數。
    • 提高 AnimationSpec 的整體易用性,開放建構函式,而非依賴建構工具
    • 將 KeyFrame 和 Tween 的持續時間和延遲時間變更為 Int。這樣就能免除不必要的類型轉換和方法超載 (同時支援 Long 和 Int) (Ica0b4)
  • 以 Int 取代 IntPx,並以 IntOffset 取代 IntPxPosition。將 IntPxSize 替換成 IntSize。(Ib7b44)
  • 為了整合用於呈現調整大小資訊的類別數量,請將 Size 類別 (而非 PxSize) 的使用方法進行標準化。這樣就能使用內嵌類別,利用一個長整數封裝 2 個浮點值,呈現以浮點表示的寬度和高度 (Ic0191)
  • 為了整合用於呈現地點資訊的資訊類別數量,請將偏移量類別 (而非 PxPosition) 的用量標準化。這樣就能使用內嵌類別,利用一個經度封裝 2 個浮點型數值,呈現以浮點數表示的 x 和 y 偏移量。(I3ad98)
  • 我們進行了大規模重構作業,包括將各種 compose 類別中使用的 Px 類別改為只使用 Dp 和原始類型來處理像素參數 (I086f4)
  • 為 Dmate、Px、Size、Position、Bounds、PxPosition、PxSize、PxBounds、IntPx、IntPxSize、IntPxPosition、IntPxBounds 及 AnimationVector 等新增了 animate() 支援 (Ib7518)
  • Crossfade 現在接受選用的 AnimationBuilder 參數,允許設定動畫 (I6d6e0)
  • 將 API 中的所有可為 Null 色彩都更換為不可為 Null,並使用 Color.Unset 取代 null (Iabaa7)
  • 移除了 ValueHolder 類別。重新建構 AnimatedValue 和 AnimatedFloat 類別,使動畫值欄位變得抽象,讓子類別可以監看數值更新。
    • 為 AnimatedValue、AnimatedFloat 等新增了模型類別。
    • 新增了一組輕量級 @Composable API,用於在值之間進行動畫。(I79530)
  • 對環境 API 做出破壞性變更。詳情請參閱記錄檔和 Ambient<T> 說明文件 (I4c7eeb/143769776)
  • 新增了重複播放模式:Reverse (倒轉)當動畫在 RepeatableSpec 或 VectorizedRepeatableSpec 中重複時,此模式會返回上一個疊代。(Ibe0f5)
  • ManualAnimationClock 的 API 新增功能:hasObservers: Boolean 和建構函式參數 dispatchOnSubscribe: Boolean (Iaa134)
  • 新增了可在 AnimatedFloat 中取得最小/最大邊界的 API (Icd9cc)

修正錯誤

  • runOnIdleCompose 重新命名為 runOnIdle (I83607)
  • 將多個測試 API 重新命名,提供更直覺化的使用體驗。將所有 FindXYZ API 都重新命名為 onNodeXYZ。將所有 doXYZ API 都重新命名為 performanceXYZ。(I7f164)
  • 推出低階無狀態 Animation API。這些 API (I63bf7)
  • Recompose 可組合項不再是實用的抽象層。多數重組作業應該都是因為 MutableState 指派項目才會執行。除此之外,建議您使用 invalidate 函式來觸發針對目前範圍的重組作業 (Ifc992)
  • 我們進行了大規模重構作業,包括將各種 compose 類別中使用的 Px 類別改為只使用 Dp 和原始類型來處理像素參數。刪除了整個 Px 類別 (I3ff33)
  • 我們進行了大規模重構工作,其中一部分是將在各種組合中使用 Px 類別來處理像素參數,更換成只使用 Dp 和基本類型 (Id3434)
  • Crossfade 現在可採用空值做為初始值 (Iad6a4b/155947711)
  • 我們進行了大規模重構作業,包括將各種 compose 類別中使用的 Px 類別改為只使用 Dp 和原始類型來處理像素參數 (I19d02)
  • 整合 CanvasScope 實作項目,現在只有 DrawScope 和 ContentDrawScope。CanvasScope 已重新命名為 DrawScope。更新 DrawScope 以導入 Density 介面,並在 ContentDrawScope 中提供 LayoutDirection Deleted DrawScope 子類別。Painter 和 PainterModifier 經更新後不會再自行維護 RTL 屬性,原因是 DrawScope 已提供這項資訊,不必自行提供 (I1798e)
  • 更新較高階的 Compose API,讓 Canvas 改為顯示 CanvasScope。如此一來,取用者就不必維護自己的 Paint 物件。如果取用者仍要求 Canvas 存取權,則可以使用 drawCanvas 擴充功能方法,這種方法可提供回呼,透過基礎 Canvas 發出繪圖指令 (I80afd)
  • 分別將 verticalGravity 和 horizontalGravity 參數新增至 Row 和 Column。(I7dc5a)
  • ui-text 模組已重新命名為 ui-text-core (I57dec)
  • 改善 DrawModifier API:
    • 已製作 Draw() ContentDrawScope 的接收器範圍
    • 移除了 Draw() 的所有參數
    • DrawScope 的介面與之前的 CanvasScope 介面相同
    • ContentDrawScope 含有 DrawContent() 方法 (Ibacedb/152919067)
  • runOnIdleComposerunOnUiThread 現已成為全域函式,而非 ComposeTestRule 中的方法 (Icbe8f)。
  • [Mutable]State 屬性委派運算子已移至擴充功能,以支援 Kotlin 1.4 屬性委派最佳化。呼叫端必須新增匯入作業才能繼續使用 by state { ... }by mutableStateOf(...) (I5312c)
  • ColoredRect 已淘汰,請改用 Box(Modifier.preferredSize(width, height).drawBackground(color))。(I499fab/152753731)。
  • 將 Modifier 和運算子改為工廠擴充功能函式 (I225e4)
  • 淘汰了 Center 可組合元件。應改用 LayoutSize.Fill + LayoutAnchor.Center 修飾符,或將其替換為已套用適當修飾符的 Box 或 Stack 可組合項 (Idf5e0)
  • 已將 LayoutFlex 重新命名為 LayoutWeight。將 tight 參數重新命名為 fill。(If4738)
  • Opacity 可組合函式已更換為 drawOpacity 修飾詞 (I5fb62)
  • 現在,使用 AndroidComposeTestRule 的測試在組合的根目錄中提供一個動畫時鐘,您可手動操作暫停、恢復及快轉。(Id54c5)
  • LayoutPadding 修飾符中支援從右到左的方向 (I9e8da)
  • Density 和 DensityScope 已合併至單一介面。現在可以使用 DensityAmbient.current 取代 EnvironmentDensity()。只需 with(density) 便可取代 withDensity(density)。(I11cb1)
  • 為各種內嵌類別新增了複製方法,包括:
    • Offset
    • 大小
    • Radius
    • Motion
    • TransformOrigin
    • 淘汰 Size.copy 這個隨附物件方法,改用執行個體複製方法 (Ife290b/159905651)
  • androidx.compose.ViewComposer 已移至 androidx.ui.node.UiComposer。此外,我們移除了 androidx.compose.Emittable,它對 ComponentNode 來說是多餘的。androidx.compose.ViewAdapters 已移除。系統已不再支援這些項目。Compose.composeInto 已淘汰,請改用 setContentsetViewContent。Compose.disposeComposition 已淘汰,請改用 Composition (由 setContent 傳回) 上的 dispose 方法。androidx.compose.Compose.subcomposeInto 已移至 androidx.ui.core.subcomposeInto。ComponentNode#emitInsertAt 已重新命名為 ComponentNode#insertAt。ComponentNode#emitRemoveAt 已重新命名為 ComponentNode#removeAt。ComponentNode#emitMode 已重新命名為 ComponentNode#move (Idef00)