Compose Animation
最新の更新 | 現在の安定版リリース | 次のリリース候補 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2021 年 2 月 10 日 | - | - | - | 1.0.0-alpha12 |
構造
Compose は、androidx
内の 6 つの Maven グループ ID を組み合わせたものです。各グループには対象となる機能のサブセットが含まれており、それぞれに固有のリリースノートがあります。
次の表に、各グループの説明と、それぞれのリリースノートのリンクを示します。
グループ | 説明 |
---|---|
compose.animation | Jetpack Compose アプリ内でアニメーションを作成して、ユーザー エクスペリエンスを拡充します。 |
compose.compiler | @Composable 関数を変換し、Kotlin コンパイラ プラグインで最適化を有効にします。 |
compose.foundation | すぐに使用できるビルディング ブロックで Jetpack Compose アプリを作成し、基盤を拡張して独自のデザイン システム要素を構築します。 |
compose.material | すぐに使用できるマテリアル デザイン コンポーネントで Jetpack Compose UI を構築します。Compose の上位レベルのエントリ ポイントであり、www.material.io のガイドラインと適合するコンポーネントを提供するように設計されています。 |
compose.runtime | Compose のプログラミング モデルと状態管理の基本ビルディング ブロックと、Compose コンパイラ プラグインがターゲットとするコアランタイム。 |
compose.ui | レイアウト、描画、入力などのデバイス操作に必要な Compose UI の基本コンポーネント。 |
依存関係の宣言
Compose への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
dependencies { implementation "androidx.compose.animation:animation:1.0.0-alpha12" } android { buildFeatures { compose true } composeOptions { kotlinCompilerVersion "1.4.30" kotlinCompilerExtensionVersion "1.0.0-alpha12" } } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { jvmTarget = "1.8" freeCompilerArgs += ["-Xallow-jvm-ir-dependencies"] } }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0.0
バージョン 1.0.0-alpha12
2021 年 2 月 10 日
androidx.compose.animation:animation:1.0.0-alpha12
と androidx.compose.animation:animation-core:1.0.0-alpha12
がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。
API の変更
Modifier.pointerInput
は、ポインタ入力検出コルーチン再開のタイミングを新しい依存関係に示すために、remember キーを必要とするようになりました。(I849cd)- Bounds の名前を DpRect に変更しました。(I4b32a)
- AnimationSpec のパラメータ名を、アニメーション システム全体で animationSpec に統一しました。また、EnterTransition と ExitTransition については、FiniteAnimationSpec を受け入れるようにしています。(Ie47c5、b/177457083)
- Animatable.snapTo と Animatable.stop が suspend 関数になりました。(If4288)
- 以前
state { 0 }
composable を削除してremember { mutableStateOf(0) }
のような使い方を推奨するようになったのと同様、savedInstanceState { 0 }
composable を削除する予定です。代わりにrememberSaveable { mutableStateOf(0) }
の使用を推奨します。これにより、MutableState 内で使用されるタイプが Bundle に保存可能な場合は、自動的に保存および復元が行われるようになります。これまでカスタムのセーバー オブジェクトを渡していた場合は、stateSaver
パラメータを含む rememberSaveable のオーバーロードを使用する必要があります。使い方は、val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
のようになります。(Ib4c26、b/177338004) - アニメーション システムの他の部分との一貫性を高めるため、Crossfade のメソッド シグネチャを更新しました。(Ib05ed、b/177457083)
- rememberSavedInstanceState() を、rememberSaveable() に名前変更して androidx.compose.runtime.saveable パッケージに移動しました。(I1366e、b/177338004)
- RestorableStateHolder を、SaveableStateHolder に名前変更して androidx.compose.runtime.saveable パッケージに移動しました。内部メソッド RestorableStateProvider の名前を SaveableStateProvider に変更しました。汎用型が削除されたため、Any をキーとして渡すことができます。試験運用版のアノテーションは不要になりました。(I0902e、b/174598702)
- アニメーション システムの他の部分と一貫性を持たせるため、Modifier.animateContentSize API を更新しました。(I0bf75、b/177457083)
- AnimatedValue/Float のサポートを終了しました。代わりに Animatable を使用してください。(I71345、b/177457083)
- tapGestureFilter、doubleTapGestureFilter、longPressGestureFilter、pressIndicaitonGestureFilter のサポートを終了しました。代わりに、Modifier.clickable または Modifier.pointerInput を detectTapGestures 関数とともに使用してください。(I6baf9、b/175294473)
- 無限アニメーションに適用される
InfiniteAnimationPolicy
コルーチン コンテキスト要素を導入しました。ComposeTestRule
を使用してテストを実行する場合を除き、デフォルトではポリシーはインストールされません。(I50ec4、b/151940543) - destructuring メソッドと copy() メソッドを、それらがほとんど使用されないクラスから削除しました。(I26702、b/178659281)
- アニメーションの再生時間をナノ秒単位に統一しました。(If776a)
- compose:runtime-dispatch アーティファクトのサポートを終了しました。 MonotonicFrameClock は compose:runtime に、また AndroidUiDispatcher は compose:ui に含まれるようになりました。(Ib5c36)
- アニメーションが無限であるかどうかを示す
Animation.isInfinite
とVectorizedAnimationSpec.isInfinite
を追加しました。これは、アニメーションの実装において、無限アニメーションに特別な処理を行う場合に利用できます。たとえば、「残り時間」の表示を通常と変えたり、テストでアイドル状態を待ち続けることを避けるためにアニメーションをキャンセルしたりできます。(Iebb05、b/151940543) - アニメーション時間の型には、Uptime ではなく Long を使用します。(Ie3aa7、b/177420019)
バージョン 1.0.0-alpha11
2021 年 1 月 28 日
androidx.compose.animation:animation:1.0.0-alpha11
と androidx.compose.animation:animation-core:1.0.0-alpha11
がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
API の変更
- TransitionDefinition ベースの Transition のサポートが終了しました。(I0ac57)
- ツールに表示される Transition と子のアニメーション用のラベル フィールドを追加しました。(I619fb)
- animateAsState が animateFooAsState になりました。ここで Foo はアニメーション化される変数の型です(Float、Dp、Offset など)。(Ie7e25)
- 子のアニメーションをいくつでも実行できる、新しい InfiniteTransition。(I1da81)
- Material のステートフル パラメータ インターフェースを変更して、
State<T>
を返す @Composable 関数を提供するようにしました。Animatable.asState() を追加しました。これにより、Animatable から State への変換が簡単にできるようになりました。また、animateElevation を、Animatable の suspend 拡張機能に変更しました。(If613c)
バグの修正
- onCommit、onDispose、onActive のサポートを終了し、SideEffect API と DisposableEffect API に置き換えました。(If760e)
- updateTransition の Initial State がサポートされるようになりました。(Ifd51d)
- 画像とアイコンにコンテンツ説明パラメータを追加しました。これは、ユーザー補助サービスに説明を提供するために使用されます。(I2ac4c)
- invalidate と compositionReference() のサポートを終了し、それぞれ currentRecomposeScope と rememberCompositionReference に置き換えました。(I583a8)
- Duration と Uptime を Long ミリ秒に置き換えます。これにより、これらのクラスに対するポインタ入力の依存関係が削除されます。(Ia33b2、b/175142755、b/177420019)
- clickable、toggleable、selectable が、コンポジションの外部でも作成できるようになりました(I0a130、b/172938345、b/175294473)。
- イージングが機能インターフェースに変更されました。(Ib14e5)
- LazyColumn / LazyRow / LazyVerticalGrid のスコープのための新しい
items(count: Int)
ファクトリ メソッド。items(items: List)
とitemsIndexed(items: List)
が拡張関数になりました。そのため、使用するときには手動でインポートする必要があります。Arrays の新しい拡張オーバーロード: items(items: Array) と itemsIndexed(Array)(I803fc、b/175562574) - テストでは TestCoroutineDispatcher を利用します。(I532b6)
- PointerInputData を削除し、PointerInputData のフィールドをすべて利用できるように PointerInputChange を変更しました。PointerInputEvent と PointerInputEventData は公開 API で使用されることがないため、内部化しました。(Ifff97、b/175142755)
バージョン 1.0.0-alpha10
2021 年 1 月 13 日
androidx.compose.animation:animation:1.0.0-alpha10
と androidx.compose.animation:animation-core:1.0.0-alpha10
がリリースされました。バージョン 1.0.0-alpha10 に含まれるコミットについては、こちらをご覧ください。
API の変更
- Velocity がコンポーネント部品と数学演算を持つように変更しました。(Ib0447)
- 類似する試験運用版の API アノテーションとの整合性を保つため、
@ExperimentalTesting
の名前を@ExperimentalTestApi
に変更しました。(Ia4502、b/171464963) - Position の名前を DpOffset に変更し、getDistance() を削除しました。(Ib2dfd)
- Any.identityHashCode() 公開 API を削除しました。(I025d7)
バグの修正
- 新しいコルーチン ベースの API
Animatable
が、アニメーション間の相互排他的性を保証します。新しい DecayAnimationSpec で多次元の消滅アニメーションをサポートしました。(I820f2、b/168014930) animate()
がanimateAsState()
に置き換えられました。T
ではなくState<T>
を返します。これにより、State 値が読み取られる範囲に無効化スコープを絞り込めるため、パフォーマンスが向上します。(Ib179e)
バージョン 1.0.0-alpha09
2020 年 12 月 16 日
androidx.compose.animation:animation:1.0.0-alpha09
と androidx.compose.animation:animation-core:1.0.0-alpha09
がリリースされました。バージョン 1.0.0-alpha09 に含まれるコミットについては、こちらをご覧ください。
API の変更
- Dp.VectorConverter、Position.VectorConverter などを animation-core に移動し、古い VectorConveters のサポートを終了しました。(If0c4b)
- まったく新しい Transition API セットを導入しました。使いやすさが向上し、動的に追加されたアニメーションと、動的に計算されたアニメーション ターゲットがサポートされます。この API は、TransitionDefinition ベースの API と簡単に区別できるように試験運用版としてマークされています。(Ia7fe3)
バグの修正
- オフセット修飾子のラムダが Float ではなく IntOffset を返すようになりました。(Ic9ee5、b/174137212、b/174146755)
- LazyColumnFor、LazyRowFor、LazyColumnForIndexed、LazyRowForIndexed のサポートを終了しました。代わりに LazyColumn と LazyRow を使用してください。(I5b48c)
- 一時停止ポインタ入力 API について、HandlePointerInputScope の名前を AwaitPointerEventScope に変更し、handlePointerInput() の名前を awaitPointerEventScope() に変更しました。(Idf0a1、b/175142755)
- InfiniteRepeatableSpec を作成するための新しい infiniteRepeatable 関数(I668e5)
- ExperimentalPointerInput アノテーションを削除しました(Ia7a24)
バージョン 1.0.0-alpha08
2020 年 12 月 2 日
androidx.compose.animation:animation:1.0.0-alpha08
と androidx.compose.animation:animation-core:1.0.0-alpha08
がリリースされました。バージョン 1.0.0-alpha08 に含まれるコミットについては、こちらをご覧ください。
API の変更
- Compose のガイドラインとの整合性を確認するため、コンポーズ可能なラムダ パラメータの名前と位置に対する lint チェックを追加しました。また、lint チェックおよびガイダンスに従って、後置ラムダの名前として
children
を使用する一部の API をcontent
に移行しました。(Iec48e) - 以前にサポートが終了していた API が削除されました。
Modifier.onPositioned
が削除されました。Modifier.onGloballyPositioned
を使用してください。Modifier.onDraw
が削除されました。Modifier.onDrawBehind
を使用してください。Modifier.plus
が削除されました。Modifier.then
を使用してください。Color.Unset
が削除されました。Color.Unspecified
を使用してください。PxBounds
クラスが削除されました。代わりにRect
を使用してください。- (Ie9d02、b/172562222)
- TestAnimationClock が MonotonicFrameClock によって作動するようにするオプションを一時的に追加しました。(I1403b、b/173402197)
バグの修正
- Modifier.drawLayer の名前を Modifier.graphicsLayer に変更しました。また、API 評議会のフィードバックに従って、関連するクラスを GraphicsLayer に更新しました。(I0bd29、b/173834241)
- Modifier.scale API / Modifier.rotate API を drawLayer 用のコンビニエンス API として追加しました。
- Modifier.drawOpacity の名前を Modifier.alpha に変更しました。
- Modifier.drawShadow の名前を Modifier.Shadow に変更しました。(I264ca、b/173208140)
- PointerInputData の uptime フィールドと position フィールドを null 値非許容にしました。(Id468a)
- offsetPx 修飾子の名前が offset に変更されました。現在は、State ではなくラムダ パラメータを取得します。(Ic3021、b/173594846)
- コルーチンでアニメーションを実行するための新しい API を追加しました(Ied662)
Ambient
という接尾辞を持つ Ambient のサポートが終了し、その他の Ambient と Compose API のガイドラインに沿って、Ambient という接頭辞を持つ新しいプロパティに置き換えられました。(I33440)- テストの時間制御(TestAnimationClock とその使用方法)が試験運用版になりました。(I6ef86、b/171378521)
- 古い ui-test モジュールとそのスタブを削除しました。(I3a7cb)
RestorableStateHolder.withRestorableState
関数がRestorableStateProvider
という名前に変更されました。(I66640)- Alignment インターフェースが更新され、機能するようになりました。(I46a07、b/172311734)
バージョン 1.0.0-alpha07
2020 年 11 月 11 日
androidx.compose.animation:animation:1.0.0-alpha07
と androidx.compose.animation:animation-core:1.0.0-alpha07
がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
バグの修正
- 基本の AmbientTextStyle、ProvideTextStyle、AmbientContentColor のサポートが終了しました。代わりに、マテリアル ライブラリにある新バージョンを使用してください。マテリアル以外のアプリの場合は、独自のコンポーネントで使用できる、独自のデザイン システム固有のテーマ設定アンビエントを代わりに作成する必要があります。(I74acc、b/172067770)
- foundation.Text のサポートが終了し、material.Text に置き換えられました。テーマの値を使用しない、基本的で独自性のないテキスト API については、androidx.compose.foundation.BasicText をご覧ください。(If64cb)
- MeasureResult を MeasureScope の外に移動しました。(Ibf96d、b/171184002)
- いくつかのレイアウト関連シンボルを androidx.compose.ui から androidx.compose.layout.ui に移動しました。(I0fa98、b/170475424)
バージョン 1.0.0-alpha06
2020 年 10 月 28 日
androidx.compose.animation:animation:1.0.0-alpha06
と androidx.compose.animation:animation-core:1.0.0-alpha06
がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
API の変更
- ComposeTestRule で遷移が有効になりました。ComposeTestRule から、カーソルの点滅を有効にするオプションを削除しました。(If0de3)
バージョン 1.0.0-alpha05
2020 年 10 月 14 日
androidx.compose.animation:animation:1.0.0-alpha05
と androidx.compose.animation:animation-core:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
API の変更
- 新しいアニメーション インターフェースとサブクラス: これらのクラスには、アニメーションの開始条件と終了条件が格納されます。そのため、値と速度のクエリは、プレイ時間中しか実施できません。(Ie95bd、b/163329867)
バグの修正
- OnPositionedModifier が OnGloballyPositionedModifier という名前に、onPositioned() が onGloballyPositioned() という名前に変更されました。(I587e8、b/169083903)
contentColor() API と 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-alpha04
と androidx.compose.animation:animation-core:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれるコミットについては、こちらをご覧ください。
API の変更
- rootAnimationClockFactory、transitionsEnabled、blinkingCursorEnabled、textInputServiceFactory を @VisibleForTesting でアノテーションし、内部 API 化して kdoc を非表示にしました。(I554eb、b/168308412)
バグの修正
- グラフィック API を多数更新しました。
- スケール変換 API と回転変換 API を更新しました。これにより、DrawScope と DrawTransform の x 座標と y 座標に 2 つの float パラメータを使用してピボット座標を別個に示すのではなく、単一の Offset パラメータを使用するようにしました。
- Rect.expandToInclude メソッドと Rect.join メソッドを削除しました。
- 楕円に加えて長円を表示するように Radius のドキュメントを更新しました。
- インライン Radius クラスのパブリック コンストラクタを直接呼び出すのではなく、関数コンストラクタを通じて Radius オブジェクトをインスタンス化する必要があることをドキュメントに記載しました。
- topRight、bottomRight、bottomCenter などを照会するための RoundRect API を削除しました。
- Rect.shift のサポートを終了して Rect.translate に置き換えました。
- RoundRect.grow API と Rect.shrink API を削除しました。
- RoundRect.outerRect の名前を Rect.boundingRect に変更しました。
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect と Rect.isStadium メソッドを削除しました。
- RoundRect.longestSide の名前を RoundRect.maxDimension に変更しました。
- RoundRect.shortestSide の名前を RoundRect.minDimension に変更しました。
- RoundRect.center は、関数ではなくプロパティになりました。
- RoundRect コンストラクタを更新し、x/y 半径の値の個々のパラメータではなく Radius プロパティを使用するようにしました。
- 原点が(0,0)の長方形であると仮定していた Size API を削除しました。
- Radius に記述解除 API を追加しました。
- さまざまな RoundRect 拡張関数をプロパティに移行しました。
- (I8f5c7、b/168762961)
- foundation.Box はサポートが終了しました。代わりに foundation.layout.Box を使用してください。(Ie5950、b/167680279)
- Stack が Box に名前変更されました。compose.foundation.layout にある新しい Box を優先して、既存の Box はサポートが終了します。Box の子が複数ある場合、新しい Box は子を互いに重ね合わせるように動作します。これは、Column と同じように動作していた以前の Box とは異なります。(I94893、b/167680279)
- Box 装飾パラメータのサポートは終了しました。Box に装飾やパディングを付ける場合は、代わりに修飾子を使用します。(Modifier.background、Modifier.border、Modifier.padding)(Ibae92、b/167680279)
- レイアウト スコープのコンテンツ(RowScope の alignWithSiblings など)を静的にインポートできないようにしました。代わりに明示的なスコープ(
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
)を使用してください。(I216be、b/166760797)
バージョン 1.0.0-alpha03
2020 年 9 月 16 日
androidx.compose.animation:animation:1.0.0-alpha03
と androidx.compose.animation:animation-core:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれるコミットについては、こちらをご覧ください。
バグの修正
- レイアウト API の gravity の用法で、名前が align または alignment に一貫して変更されました。(I2421a、b/164077038)
バージョン 1.0.0-alpha02
2020 年 9 月 2 日
androidx.compose.animation:animation:1.0.0-alpha02
と androidx.compose.animation:animation-core:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれるコミットについては、こちらをご覧ください。
API の変更
特定のクロックのフレームを待機しているかどうかを確認するため、
ManualFrameClock.hasAwaiters
を追加しました。runWithManualClock
は ManualFrameClock を必要とするテストrunBlocking
に代わるものです。TestUiDispatcher.Main
はテストのメイン UI ディスパッチャへのアクセスを容易にします。例:
@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") } }
バグの修正
onPrecommit は非推奨です。onCommit で onPrecommit の動作がサポートされるようになりました。
onCommit と onActive は、次の Choreographer フレームの開始時点ではなく、構成要素の変更がコミットされた同じ Choreographer フレームで実行されるようになりました。(I70403)
バージョン 1.0.0-alpha01
2020 年 8 月 26 日
androidx.compose.animation:animation:1.0.0-alpha01
と androidx.compose.animation:animation-core:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれるコミットについては、こちらをご覧ください。
バージョン 0.1.0-dev
バージョン 0.1.0-dev17
2020 年 8 月 19 日
androidx.compose.animation:animation:0.1.0-dev17
と androidx.compose.animation:animation-core:0.1.0-dev17
がリリースされました。バージョン 0.1.0-dev17 に含まれるコミットについては、こちらをご覧ください。
新機能
API の変更
- オフセットがインライン クラスになりました。(Iaec70)
- IntOffset がインライン クラスになりました。(Iac0bf)
- IntSize がインライン クラスになりました。(I2bf42)
AnimatedVisibilty composable は、子コンテンツの表示と非表示をアニメーション化します。
AnimatedVisibilty composable と連携して 3 種類の表示と非表示のアニメーション(コンテンツのフェード、スライド、拡大 / 縮小)を提供するため、EnterTransition と ExitTransition が導入されました。さまざまな種類のアニメーションを組み合わせて、より特別なデザインを実現できます。(Idda11)
PxBounds のサポートを終了して Rect に置き換えました。PxBounds のすべての使用を更新して Rect に置き換え、移行に役立つ適切なサポート終了およびアノテーションへの置き換えを追加しました。(I37038、b/162627058)
バグの修正
PlacementScope.placeAbsolute()
の名前がPlacementScope.place()
に変更され、以前のPlacementScope.place()
の名前がPlacementScope.placeRelative()
に変更されました。その結果、PlacementScope.place()
メソッドは、右から左(RTL)へのコンテキストで、自動的に位置をミラーリングしなくなります。必要な場合は、代わりにPlacementScope.placeRelative()
を使用してください。(I873ac、b/162916675)- 明確化のため、
state { ... }
composable のサポートを終了し、remember { mutableStateOf(...) }
の明示的な呼び出しに置き換えました。これにより、状態管理の API サーフェス全般とコンセプトの数が縮小され、クラス プロパティ委任のby mutableStateOf()
パターンと一致するようになります。(Ia5727)
バージョン 0.1.0-dev16
2020 年 8 月 5 日
androidx.compose.animation:animation:0.1.0-dev16
と androidx.compose.animation:animation-core:0.1.0-dev16
がリリースされました。バージョン 0.1.0-dev16 に含まれるコミットについては、こちらをご覧ください。
API の変更
- 組み込みの単位を変換するための組み込みのベクター コンバーターに
Foo.VectorConverter
を介してアクセスできるようになりました。例:Dp.VectorConverter
、Color.VectorConverter
、Float.VectorConverter
など。(I3e273) - サイズ変更アニメーションが終了するとき、アニメーションの開始 / 終了サイズとともにリスナーに通知されるように、
Modifier.animateContentSize()
で終了リスナーがサポートされます。(I277b2) - 子修飾子のレイアウト サイズの変化をアニメーション化する新しい animateContentSize 修飾子。(Ieffdc)
MonotonicFrameAnimationClock
を追加して、MonotonicFrameClock をAnimationClockObservable
として使用できるようにしました。これにより、新しいコルーチン ベースのクロックと、従来のコールバック ベースのクロックを使用している API とのギャップが解消されました。ManualAnimationClock
に相当するMonotonicFrameClock
はManualFrameClock
になりました。(I111c7、b/161247083)
バグの修正
- 右から左(RTL)をサポートする API が更新されました。レイアウト方向の読み取りと変更に使用できる LayoutDirectionAmbient が追加されました。Modifier.rtl と Modifier.ltr が削除されました。(I080b3)
- transitionDefinition にはタイプ T を明示的に指定する必要があります。(I1aded)
- foundation.shape.corner パッケージが foundation.share にフラット化されました。(I46491、b/161887429)
- Modifier.plus のサポートが終了しました。代わりに Modifier.then を使用してください。then により、順序が明確化され、
Modifier.padding().background() + anotherModifier
と書いてチェーンを分断し可読性を下げることが防止されます。(Iedd58、b/161529964) - Modifier.drawBackground の名前が Modifier.background に変更されました。(I13677)
バージョン 0.1.0-dev15
2020 年 7 月 22 日
androidx.compose.animation:animation:0.1.0-dev15
と androidx.compose.animation:animation-core:0.1.0-dev15
がリリースされました。バージョン 0.1.0-dev15 に含まれるコミットについては、こちらをご覧ください。
依存関係の更新
0.1.0-dev15
バージョンの Compose を使用するには、上記の依存関係の宣言で示されている新しいコード スニペットに従って、依存関係を更新する必要があります。
API の変更
- Transition API が変更され、子に TransitionState を渡すのでなく、TransitionState を返すようになりました。これにより、この API と animate() API の一貫性が向上します。(I24e38)
- クロスフェード用の修飾子パラメータが追加されました。(I87cfe、b/159706180)
- 静的アニメーション仕様のコンセプトを明確化するため、最上位レベルの API で AnimationBuilder ではなく AnimationSpec を使用するようになりました。
- tween や spring などの AnimationSpec の作成に関するラムダ要件を削除することにより、遷移 DSL を改善しました。代わりに、それらはコンストラクタのパラメータを直接受け取ります。
- AnimationSpec の使いやすさを全面的に改善し、ビルダーに依存するのではなくコンストラクタを利用するようにしました。
- KeyFrames と Tween の期間と遅延を Int に変更しました。これにより、(Long と Int の両方をサポートするための)不要な型キャストとメソッドのオーバーロードがなくなります。(Ica0b4)
- IntPx の使用を Int に置き換えました。IntPxPosition を IntOffset に置き換えました。IntPxSize を IntSize に置き換えました。(Ib7b44)
- サイズ設定情報を示す際に使用するクラスの数を整理統合するため、PxSize ではなく Size クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される幅と高さを示す 2 つの float 値をパックできるようになります。(Ic0191)
- 位置情報を示す際に使用するクラスの数を整理統合するため、PxPosition ではなく Offset クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される x オフセットと y オフセットを示す 2 つの float 値をパックできるようになります。(I3ad98)
- ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I086f4)
- Dp、Px、Size、Position、Bounds、PxPosition、PxSize、PxBounds、IntPx、IntPxSize、IntPxPosition、IntPxBounds、AnimationVector に対する animate() のサポートを追加しました。(Ib7518)
- クロスフェードでオプションの AnimationBuilder パラメータを使用して、アニメーションを構成できるようになりました。(I6d6e0)
- API 内のすべての null 値許容型の Color が null 値非許容型に置き換えられ、null の代わりに Color.Unset が使用されるようになりました。(Iabaa7)
- ValueHolder クラスを削除しました。サブクラスで値の更新を監視できるよう、アニメーション値のフィールドを抽象化するために、AnimatedValue クラスと AnimatedFloat クラスを再構成しました。
- AnimatedValue、AnimatedFloat などで使用するモデルクラスを追加しました。
- 値を更新する間にアニメーションを表示するための、軽量の新しい @Composable API セットを追加しました。(I79530)
- アンビエント API を大幅に変更しました。詳細については、ログと
Ambient<T>
のドキュメントをご覧ください。(I4c7ee、b/143769776) - 新しいリピートモード(リバース)が追加されました。このモードでは、RepeatableSpec または VectorizedRepeatableSpec でアニメーションが繰り返されると、前回の繰り返しが逆再生されます。(Ibe0f5)
- ManualAnimationClock への API の追加:
hasObservers: Boolean
とコンストラクタ パラメータdispatchOnSubscribe: Boolean
。(Iaa134) - AnimatedFloat で最小 / 最大境界を取得するための API が追加されました。(Icd9cc)
バグの修正
runOnIdleCompose
の名前がrunOnIdle
に変更されました。(I83607)- いくつかのテスト API の名前がより直感的にわかりやすいものになりました。findXYZ API という名前はすべて onNodeXYZ に変更されました。doXYZ API という名前はすべて performXYZ に変更されました。(I7f164)
- 低レベルのステートレス アニメーション API が導入されました。(I63bf7)
- Recompose composable は、有用な抽象化ではなくなりました。ほとんどの場合、再コンポーズは、MutableState 割り当ての結果として生じます。それ以外の場合は、
invalidate
関数を使用して、現在のスコープの再コンポーズをトリガーすることをおすすめします。(Ifc992) - ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。Px クラス全体が削除されています。(I3ff33)
- ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(Id3434)
- クロスフェードの初期値として null を使用できるようになりました。(Iad6a4、b/155947711)
- ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I19d02)
- CanvasScope の実装を整理統合し、DrawScope と ContentDrawScope のみとしました。CanvasScope の名前を DrawScope に変更しました。DrawScope を更新して Density インターフェースを実装し、LayoutDirection を提供しました。ContentDrawScope の DrawScope サブクラスを削除しました。Painter と PainterModifier が更新され、RTL プロパティを自身で維持しなくなりました。これは DrawScope ですでに提供されているため、手動で提供する必要はありません。(I1798e)
- キャンバスを公開するハイレベルの Compose API を更新して、代わりに CanvasScope を公開するようにしました。これにより、ユーザーが独自の Paint オブジェクトを維持管理する必要がなくなります。引き続きキャンバスの利用が必要なユーザーは、drawCanvas 拡張メソッドを使用できます。このメソッドにより、対象のキャンバスに対して Draw コマンドを実行するコールバックが行われます。(I80afd)
- verticalGravity パラメータと horizontalGravity パラメータをそれぞれ Row と Column に追加しました。(I7dc5a)
- ui-text モジュールの名前が ui-text-core に変更されました。(I57dec)
- DrawModifier API の改善:
- draw() のレシーバ スコープを ContentDrawScope にしました。
- draw() のパラメータをすべて削除しました。
- DrawScope に以前の CanvasScope と同じインターフェースを設定しました。
- ContentDrawScope に drawContent() メソッドを追加しました。(Ibaced、b/152919067)
runOnIdleCompose
とrunOnUiThread
が ComposeTestRule のメソッドではなくグローバル関数になりました。(Icbe8f)- [Mutable] State プロパティ デリゲート演算子が、Kotlin 1.4 のプロパティ デリゲート最適化に対応するため、拡張機能に移動されました。
by state { ... }
またはby mutableStateOf(...)
を引き続き使用するには、呼び出し元でインポートを追加する必要があります。(I5312c) - ColoredRect のサポートが終了しました。代わりに
Box(Modifier.preferredSize(width, height).drawBackground(color))
を使用してください。(I499fa、b/152753731) - 修飾子と演算子を工場出荷時の拡張機能に置き換えました。(I225e4)
- Center composable は非推奨になりました。LayoutSize.Fill + LayoutAlign.Center 修飾子に置き換えるか、適切な修飾子が適用された Box composable または Stack composable に置き換える必要があります。(Idf5e0)
- LayoutFlexible の名前を LayoutWeight に変更しました。このパラメータを補うために tight パラメータの名前を変更しました。(If4738)
- コンポーズ可能な関数 Opacity が drawOpaity 修飾子に置き換えられました。(I5fb62)
- AndroidComposeTestRule を使用するテストでは、構成のルートにアニメーション クロックが提供され、手動での一時停止、再開、詳細設定が可能になりました。(Id54c5)
- LayoutPadding 修飾子で右から左方向をサポートするようになりました。(I9e8da)
- Density と DensityScope が 1 つのインターフェースに統合されました。ambientDensity() ではなく、DensityAmbient.current を使用できるようになりました。withDensity(density)ではなく、with(density)だけになりました。(I11cb1)
- 以下のさまざまなインライン クラスタイプにコピーメソッドを追加しました。
- Offset
- Size
- Radius
- Motion
- TransformOrigin
- Size.copy コンパニオン オブジェクト メソッドのサポートを終了し、インスタンス コピーメソッドに置き換えました。(Ife290、b/159905651)
- androidx.compose.ViewComposer が androidx.ui.node.UiComposer に移動され、androidx.compose.Emittable が削除されました。これは ComponentNode と重複していました。androidx.compose.ViewAdapters が削除されました。サポート対象のユースケースではなくなりました。Compose.composeInto のサポートが終了しました。代わりに
setContent
またはsetViewContent
を使用してください。Compose.disposeComposition のサポートが終了しました。代わりに、setContent
が返すComposition
のdispose
メソッドを使用してください。androidx.compose.Compose.subcomposeInto は androidx.ui.core.subcomposeInto に移動されました。ComponentNode#emitInsertAt の名前が ComponentNode#insertAt に変更されました。ComponentNode#emitRemoveAt の名前が ComponentNode#removeAt に変更されました。ComponentNode#emitMode の名前が ComponentNode#move に変更されました。(Idef00)