Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Compose Foundation

すぐに使用できるビルディング ブロックで Jetpack Compose アプリを作成し、基盤を拡張して独自のデザイン システム要素を構築します。
最新の更新 現在の安定版リリース 次のリリース候補 ベータ版リリース アルファ版リリース
2020 年 10 月 1 日 - - - 1.0.0-alpha04

構造

Compose は、androidx 内の 7 つの Maven Group ID を組み合わせたものです。各グループには対象とする機能のサブセットが含まれ、それぞれに固有のリリースノートがあります。

次の表に、各グループの説明と、それぞれのリリースノートのリンクを示します。

グループ説明
compose.animationJetpack Compose アプリ内でアニメーションを作成して、ユーザー エクスペリエンスを拡充します。
compose.compiler@Composable 関数を変換し、Kotlin コンパイラ プラグインで最適化できるようにします。
compose.foundationすぐに使用できるビルディング ブロックで Jetpack Compose アプリを作成し、独自のデザイン システム要素を構築する基盤を拡張します。
compose.materialすぐに使用できるマテリアル デザイン コンポーネントで Jetpack Compose UI を構築します。Compose の上位レベルのエントリ ポイントであり、www.material.io のガイドラインと適合するコンポーネントを提供するように設計されています。
compose.runtimeCompose のプログラミング モデルと状態管理の基本ビルディング ブロックと、Compose コンパイラ プラグインがターゲットとするコアランタイム。
compose.uiレイアウト、描画、入力など、デバイスの操作に必要な Compose UI の基本コンポーネント。
uiJetpack Compose ライブラリを操作します。

依存関係の宣言

Compose への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

dependencies {
    implementation "androidx.compose.foundation:foundation:1.0.0-alpha04"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerVersion "1.4.0"
        kotlinCompilerExtensionVersion "1.0.0-alpha04"
    }
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
    kotlinOptions {
        jvmTarget = "1.8"
        freeCompilerArgs += ["-Xallow-jvm-ir-dependencies", "-Xskip-prerelease-check"]
    }
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0.0

バージョン 1.0.0-alpha04

2020 年 10 月 1 日

androidx.compose.foundation:foundation:1.0.0-alpha04androidx.compose.foundation:foundation-layout:1.0.0-alpha04androidx.compose.foundation:foundation-text:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれるコミットについては、こちらをご覧ください

API の変更

  • Stack が Box に名前変更されました。compose.foundation.layout にある新しい Box を優先して、既存の Foundation.Box はサポートが終了します。Box の子が複数ある場合、新しい Box は子を互いに重ね合わせるように動作します。これは、Column と同じように動作していた以前の Box とは異なります。(I94893b/167680279
  • Box 装飾パラメータのサポートは終了しました。Box に装飾やパディングを付ける場合は、代わりに修飾子を使用します。(Modifier.background、Modifier.border、Modifier.padding)(Ibae92b/167680279
  • 新たに LazyListState クラスを追加しました。 これにより、LazyRow コンポーネントと LazyColumn コンポーネントのスクロール位置のモニタリングと制御が可能になります。rememberLazyListState() を使用してインスタンスを作成し、コンポーネントの state パラメータに渡します。現在この初期バージョンでは、最初に表示されるアイテムとオフセットをモニタリングできます。(Ic7cb7b/159307669
  • Lazy リストの位置とスクロール オフセットが、アクティビティの再作成の前後で保存および復元されるようになりました。(Ie045fb/166589058
  • 長いクリック セマンティクス アクションを追加しました。(I6281bb/156468846
  • MutatorMutex ユーティリティを追加して、共有状態の単一のミューテータを長期にわたって維持し、競合するミューテータを優先度に基づいてキャンセルするようにしました。(I3f975
  • rootAnimationClockFactory、transitionsEnabled、blinkingCursorEnabled、textInputServiceFactory を @VisibleForTesting でアノテーションし、内部 API 化して kdoc を非表示にしました。(I554ebb/168308412
  • 文字列入力のテキストから inlineContent パラメータを削除しました。inlineContent が AnnotatedString と連動する必要があるため、このパラメータは使用されなくなります。(Ief403
  • サポートが終了していたカスタム Arrangement API を削除しました。(Ic576db/168297922b/168297923
  • unbounded パラメータを wrapContentSize 修飾子に追加しました。これにより、レイアウト要素を無制限で測定できるようになりました。(I77951b/158559319
  • レイアウト スコープのコンテンツ(RowScope の alignWithSiblings など)を静的にインポートできないようにしました。代わりに明示的なスコープ(with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) })を使用してください。(I216beb/166760797

バグの修正

  • グラフィック 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 拡張関数をプロパティに移行しました。
    • I8f5c7b/168762961
  • スクロールのたびに不要な再構成を行わないようにすることで、LazyColumnFor / LazyRowFor スクロールのパフォーマンスを最適化しました。(I64f65b/168293643b/167972292b/165028371
  • スクロール後にアイテムが変更されたときの LazyColumnFor / LazyRowFor のクラッシュを修正して、以前に表示されていたアイテムが削除されたときに自動で上にスクロールするように実装し、最後に空の隙間が表示されないようにしました。(I220abb/161480164b/167855468
  • ScrollableContainer や LazyColumnFor のような同じ方向にスクロールできるコンテナはネストできなくなりました。これまでもサポートはされておらず、LazyColumnFor のアイテムのフリングやすべての Lazy 機能の妨げとなっていました。(I6e101
  • グラフィック API を多数更新しました。
    • 範囲限定変換メソッドのある DrawScope API を更新し、変換がコールバック内でのみ適用され、コールバックが呼び出された後に削除されることを示すようにしました。
    • 丸みを帯びた長方形ではなくパスを参照するように clipPath のドキュメントを更新しました。
    • ドキュメント内の clipPath の右パラメータの間隔を修正しました。
    • DrawScope.drawCanvas の名前を drawIntoCanvas に変更し、size パラメータを削除しました。
    • インセット メソッドの dx パラメータと dy パラメータの名前を horizontal と vertical に変更しました。
    • 4 つのすべての境界に同じインセット値を指定するインセット オーバーロードを追加しました。
    • インセットが 4 つの辺すべてに適用されることを示すインセット メソッドに関するドキュメントを削除しました。
    • Rect クラス用のドキュメントを更新しました。
    • kdoc スタイルに合わせて Rect パラメータのコメントを更新しました。
    • Rect.join と Rec.expandToInclude を削除しました。
    • Rect.translate(offset) のオーバーロードを作成し、Rect.shift のサポートを終了しました。
    • If086ab/167737376
  • セマンティクス プロパティに AccessibilityScrollState を追加しました。(Ifeda9
  • オブジェクト作成を回避するために、TextRange をインライン化しました。(Id034b
  • ParagraphConstraints を削除しました。幅が直接 Paragraph に渡されるようになりました。(Ica712

バージョン 1.0.0-alpha03

2020 年 9 月 16 日

androidx.compose.foundation:foundation:1.0.0-alpha03androidx.compose.foundation:foundation-layout:1.0.0-alpha03androidx.compose.foundation:foundation-text:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれるコミットについては、こちらをご覧ください

API の変更

  • InnerPadding の名前が PaddingValues に変更されました。(I195f1b/167389171
  • レイアウト API の gravity の用法で、名前が align または alignment に一貫して変更されました。(I2421ab/164077038
  • alignment パラメータが Stack に追加され、すべての Stack 子のデフォルトの配置を指定できるようになりました。(Ie80cab/164085265

バグの修正

  • DpConstraints とそれを使用する API のサポートは終了しました。(I90cdbb/167389835
  • widthIn のパラメータ minWidthmaxWidth の名前が minmax に変更されました。preferredWidthInheightInpreferredHeightIn も同様です。(I0e5e1b/167389544
  • 現在のグローバル メソッドのサポートが終了するため、onNode などのグローバル メソッドが ComposeTestRule に追加されました。(Ieae36
  • 無効なスワイプ操作の生成を引き起こしていた、GestureScope でのサイズと位置の計算を修正しました(Iaf358b/166589947
  • createAndroidComposeRuleAndroidInputDispatcherandroidx.ui.test.android から androidx.ui.test に移動しました(Idef08b/164060572

バージョン 1.0.0-alpha02

2020 年 9 月 2 日

androidx.compose.foundation:foundation:1.0.0-alpha02androidx.compose.foundation:foundation-layout:1.0.0-alpha02androidx.compose.foundation:foundation-text:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • TestUiDispatcher は試験運用となりました(Iae99db/161247083
  • 特定のクロックのフレームを待機しているかどうかを確認するため、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")
        }
    }
    

    I0a85bb/161247083

バージョン 1.0.0-alpha01

2020 年 8 月 26 日

androidx.compose.foundation:foundation:1.0.0-alpha01androidx.compose.foundation:foundation-layout:1.0.0-alpha01androidx.compose.foundation:foundation-text:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれるコミットについては、こちらをご覧ください

バージョン 0.1.0-dev

バージョン 0.1.0-dev17

2020 年 8 月 19 日

androidx.compose.foundation:foundation:0.1.0-dev17androidx.compose.foundation:foundation-layout:0.1.0-dev17androidx.compose.foundation:foundation-text:0.1.0-dev17 がリリースされました。バージョン 0.1.0-dev17 に含まれる commit については、こちらをご覧ください

API の変更

  • Row と Column に spacedBy Arrangement が追加され、固定の間隔を空けてレイアウトの子を配置できるようになりました。また、aligned Arrangement が追加され、Alignment に従ってレイアウトの子を Row / Column に隣り合わせに配置できるようになりました。元の Arrangement.Vertical#arrange および Arrangement.Horizontal#arrange メソッドはサポートが終了しました。将来、カスタム Arrangement の書き込みはサポートされなくなります。(I6733db/161985975
  • Offset がインライン クラスになりました。(Iaec70
  • TextField から onFocusChanged コールバックを削除しました。代わりに Modifier.focusObserver を使用してください。(I51089b/161297615
  • Modifier.drawBorder のサポートが終了しました。代わりに Modifier.border を使用してください。Border データクラスは BorderStroke に置き換えられました。(I4257db/158160576
  • VerticalScroller と HorizontalScroller が削除されました。代わりに、ScrollableColumn/Row を使用してください。Modifier.drawBackground を削除しました。Modifier.background を使用してください。(I73b0db/163019183
  • 非推奨としてマークされている fillMax* 修飾子を LazyItemScope から削除しました。LazyColumnFor の直接の子ではないアイテムにそのような修飾子を正しく追加することが難しくなっているためです。(Ifa78d
  • DSL として LazyColumn/LazyRow の実装を追加 しました。(I93cc6
  • Constraints がインライン クラスになりました。(I88736
  • fillMaxWidth、fillMaxHeight、fillMaxSize 修飾子を使用して、使用可能なスペースの一部にレイアウトのサイズを合わせる機能を追加しました。(I945bbb/161562591

バグの修正

  • SelectionContainer に修飾子パラメータを追加しました。(I4aadab/161487952
  • SemanticsPropertyKey に mergePolicy ラムダを追加しました。これを使用して、mergeAllDescendants セマンティクスのマージに関するカスタム ポリシーを定義できます。デフォルトのポリシーでは、すでに存在する場合は親の値が使用され、それ以外の場合は子の値が使用されます。(Iaf6c4b/161979921
  • PlacementScope.placeAbsolute() の名前が PlacementScope.place() に変更され、以前の PlacementScope.place() の名前が PlacementScope.placeRelative() に変更されました。その結果、PlacementScope.place() メソッドは、右から左(RTL)へのコンテキストで、自動的に位置をミラーリングしなくなります。必要な場合は、代わりに PlacementScope.placeRelative() を使用してください。(I873acb/162916675
  • サポートが終了した FilledTextField コンポーネントを削除しました。代わりに TextField を使用して、塗りつぶしテキスト フィールドのマテリアル デザイン実装を取得してください。(I5e889
  • LinearProgressIndicator に backgroundColor パラメータを追加し、CircularProgressIndicator から内部パディングを削除しました。新しい ProgressIndicatorConstants.DefaultProgressAnimationSpec を追加しました。このプロパティは、値間の進捗をアニメーション化するときにデフォルトの AnimationSpec として使用できます。(If38b5b/161809914b/161804677
  • 明確化のため、state { ... } composable のサポートを終了し、remember { mutableStateOf(...) } の明示的な呼び出しに置き換えました。これにより、状態管理の API サーフェス全般とコンセプトの数が縮小され、クラス プロパティ委任の by mutableStateOf() パターンと一致するようになります。(Ia5727
  • compose の命名パターンに合わせて RRect を RoundRect に名前変更しました。RRect に類似する関数コンストラクタを作成し、RRect 関数コンストラクタのサポートを終了しました。(I5d325
  • onChildPositioned と OnChildPositionedModifier を削除しました。代わりに、子レイアウトで onPositioned と OnPositionedModifier を使用する必要があります。(I4522eb/162109766
  • IntSize がインライン クラスになりました。(I2bf42
  • 空白の領域を長押しして編集します。(Ib1e5b
  • テキストをタップした後、FloatingToolbar を非表示にします。(If4525
  • 選択範囲を更新するときに FloatingToolbar を非表示にします。(I8444c
  • ぼかしの際に選択を解除します。(I781a2

バージョン 0.1.0-dev16

2020 年 8 月 5 日

androidx.compose.foundation:foundation:0.1.0-dev16androidx.compose.foundation:foundation-layout:0.1.0-dev16androidx.compose.foundation:foundation-text:0.1.0-dev16 がリリースされました。バージョン 0.1.0-dev16 に含まれる commit については、こちらをご覧ください

API の変更

  • Lazy リストの itemContent パラメータとして LazyItemScope が追加されました。これにより、親の最大サイズを塗りつぶすための修飾子が提供されます。アイテムでビューポートを塗りつぶす必要があるが、アイテムが制約なしで測定されるため通常の Modifier.fillMaxSize() が機能しない事例を解決できます。(Ibd3b2b/162248854
  • ダイアログを UI に移動しました。(I47fa6
  • LazyColumnForIndexed / LazyRowForIndexed を追加しました。itemCallback でインデックスとアイテムの両方を提供する LazyColumnFor / LazyRowFor のバージョンです。現在のアイテムに加えて、現在のインデックスも把握する必要がある場合に便利です。(I65ff3
  • Modifier.deternimateProgress の名前が Modifier.progressSemantics に変更されました。(I9c0b4
  • LazyColumnItems を LazyColumnFor に名前変更しました。LazyRowItems を LazyRowFor に名前変更しました。(I84f84
  • 推奨する方法を示すためにマークとアノテーションを追加しました。(I66b20
  • foundation.shape.corner パッケージが foundation.share にフラット化されました。(I46491b/161887429
  • LazyRowItems / LazyColumnItems に交差軸の gravity パラメータを追加しました。LazyRowItems / LazyColumnItems はラップ コンテンツの動作をサポートするようになりました。(Ib39fc
  • ZoomableState の名前が ZoomableController に変更されました。smoothScale にカスタム曲線のサポートが追加されました。enabledonZoomStarted の機能が追加されました。(If8b8f
  • material の FilledTextField が TextField に、foundation の TextField が BaseTextField に名前変更されたため、最もシンプルで望ましい API を簡単に見つけて使用できるようになりました。(Ia6242b/155482676
  • 以前にサポートが終了した AdapterList が削除されました。代わりに LazyColumnItems を使用してください。(I12b9b
  • Modifier.drawBackground の名前が Modifier.background に変更されました。(I13677
  • 以前の ConstraintLayout DSL は削除されました。ConstraintSet2 の名前が ConstraintSet に変更されました。(If58d1b/162450908
  • Modifier.absoluteOffset() と Modifier.absoluteOffsetPx() を追加しました。オフセット修飾子とは異なり、絶対オフセット修飾子は、右から左へのコンテキストで自動ミラーリングされません。(I3aa21
  • RowColumn をインライン関数にしました。これにより、使用する際のオーバーヘッドが大幅に削減されます。(I75c10

バグの修正

  • 広範な API の修正に対応しました。(I077bc
    1. 未使用の OffsetBase インターフェースを削除しました。
    2. 一貫性のある API サーフェスを持つように Offset クラスと IntOffset クラスを調整しました。
    3. Offset API に合わせて、IntOffset.Origin を IntOffset.Zero に名前変更しました。
    4. ユーザーが独自の Canvas インスタンスを作成できるように、Canvas インターフェースから nativeCanvas メソッドを削除しました。
    5. lateinit の代わりに非 null パラメータとなり、フィールドの非 null 可能性が確保されるように DrawScope をリファクタリングするため、スタブ EmptyCanvas クラスを作成しました。
    6. ClipOp 列挙型の名前をパスカルケースに変更しました。
    7. FilterQuality 列挙型の名前をパスカルケースに変更しました。
    8. StrokeJoin 列挙型の名前をパスカルケースに変更しました。
    9. PointMode 列挙型の名前をパスカルケースに変更しました。
    10. PaintingStyle 列挙型の名前をパスカルケースに変更しました。
    11. PathFillType 列挙型の名前をパスカルケースに変更しました。
    12. StrokeCap 列挙型の名前をパスカルケースに変更しました。
    13. DrawCache の実装が更新され、lateinit パラメータを使用しなくなりました。
    14. DrawScope が更新され、fillPaint および strokePaint 内部パラメータの遅延委任を使用しなくなりました。
    15. オーバーヘッドを削減するため、Box の使用を回避するように Image composable を更新しました。
    16. Outline クラスを更新して @Immutable アノテーションを追加しました。
    17. PathNode を更新して、各パス手順に @Immutable アノテーションを追加しました。
    18. Vector サブコンポジションを更新し、等価性に関する冗長な条件付きチェックを削除しました。Compose はすでにこの処理に対応しているためです。
    19. Rect コンパニオン コンストラクタ メソッドのサポートが終了し、関数コンストラクタに置き換わりました。
    20. Brush のクラスと関数コンストラクタを @Immutable および @Stable API で更新しました。
    21. PascalCase となるように VertexMode 列挙型を更新しました。
    22. DrawScope selectPaint メソッドを更新し、ペイントでストローク パラメータが変更されている場合は、条件付きで上書きできるようにしました。
    23. Size を更新して API の分解を追加し、UnspecifiedSize を Unspecified に名前変更して、未使用のメソッドを削除しました。
  • MonotonicFrameAnimationClock を追加して、MonotonicFrameClock を AnimationClockObservable として使用できるようにしました。これにより、新しいコルーチン ベースのクロックと、従来のコールバック ベースのクロックを使用している API とのギャップが解消されました。

    ManualAnimationClock に相当する MonotonicFrameClock は ManualFrameClock になりました。(I111c7b/161247083

  • SemanticsNodeInteraction.performPartialGesture を削除しました。代わりに SemanticsNodeInteraction.performGesture を使用してください(Id9b62

  • SemanticsNodeInteraction.getBoundsInRoot() の名前を SemanticsNodeInteraction.getUnclippedBoundsInRoot() に変更しました。(Icafdfb/161336532

  • 右から左(RTL)をサポートする API が更新されました。レイアウト方向の読み取りと変更に使用できる LayoutDirectionAmbient が追加されました。Modifier.rtl と Modifier.ltr が削除されました。(I080b3

  • Modifier.plus のサポートが終了しました。代わりに Modifier.then を使用してください。「then」を使用すると、より順序付けが明確になります。また、チェーンを破壊して読みにくくする「Modifier.padding().background() + anotherModifier」の入力が防止されます。(Iedd58b/161529964

  • isFocused() および isNotFocused() の SemanticsMatcher を追加しました。(I0b760

  • RemeasurementModifier が追加されました。レイアウトを同期的に再測定できるようになります。通常、再測定 / 再レイアウトは自動的に行われるため、この機能は必要ではありませんが、スクロール中に LazyColumnItems 内で使用できます。(I5f331b/160791058

  • 最新のガイドラインに沿って、isSystemInDarkTheme は常にシステム全体のダークテーマ設定を考慮し、Q 以前の省電力ステータスを無視するようになりました。(I0c10c

  • OnChildPositioned のサポートが終了しました。代わりに、OnPositioned を子で使用してください。(I87f95b/162109766

  • AndroidComposeTestRule の名前を createAndroidComposeRule に変更しました。(I70aaf

  • TextLayoutResult を取得するユーザー補助アクションを追加しました。(I9d6e6

バージョン 0.1.0-dev15

2020 年 7 月 22 日

androidx.compose.foundation:foundation:0.1.0-dev15androidx.compose.foundation:foundation-layout:0.1.0-dev15androidx.compose.foundation:foundation-text:0.1.0-dev15 がリリースされました。バージョン 0.1.0-dev15 に含まれる commit については、こちらをご覧ください

0.1.0-dev15 バージョンの Compose を使用するには、以下を行う必要があります。

依存関係の更新

  • 0.1.0-dev15 バージョンの Compose を使用するには、上記の依存関係の宣言で示されている新しいコード スニペットに従って、依存関係を更新する必要があります。

API の変更

  • ScrollableColumn / ScrollableRow の新しいパラメータと同様に、LazyColumnItems / LazyRowItems にも contentPadding パラメータが追加されました。このパラメータを使用することで、コンテンツがクリップされた後にそのパディングを追加できます。この操作は、修飾子パラメータだけでは実行できません。また、最初のアイテムの前または最後のアイテムの後にのみスペースを追加できます。(Ibc24e
  • テキスト フィールド内の onFocusChange コールバックの名前を onFocusChanged に変更しました。(Ida4a1
  • VerticalScroller と HoriziontalScroller のサポートが終了しました。Column / Row の動作とパラメータの組み込みエクスペリエンスをサポートするには、ScrollableColumn と ScrollableRow を使用するか、独自の要素で Modifier.verticalScroll と Modifier.horizontalScroll を使用してください。同様に、ScrollerPosition のサポートが終了し、ScrollState に置き換えられました。(I400ceb/157225838b/149460415b/154105299
  • Modifier.draggable API と Modifier.scrollable API が改訂されました。DragDirection が削除され、Orientation に置き換えられました。scrollable に必要な状態が簡素化されました。ScrollableState の名前が ScrollableController に変更されました。(Iab63cb/149460415
  • 単一値のセマンティクス プロパティで呼び出しスタイルが使用されるようになりました。たとえば、「semantics { hidden = true }」は、現在は semantics { hidden() } として記述されます。(Ic1afdb/145951226b/145955412
  • RoundedCornerShape と CutCornerShape で使用する角のサイズを 50% より大きくできるようになりました。(Id2340b/160400213
  • Image composable のデフォルトの ContentScale パラメータが Inside から Fit に変更されました。この変更は、レイアウト サイズが Painter の固有のサイズより大きい場合に、アスペクト比を維持しながら、基となる Painter を拡大する動作を取得するために行われました。この動作により、期待どおりに Image に固定サイズを指定できます。しかも、composable のサイズを計算するためにのみ固有のサイズを使用する場合でも、デフォルトの動作に影響しません。(I40ae3b/159838006
  • 静的アニメーション仕様のコンセプトを明確化するため、最上位レベルの API で AnimationBuilder ではなく AnimationSpec を使用するようになりました。tween や spring などの AnimationSpec の作成に関するラムダ要件を削除することにより、遷移 DSL を改善しました。代わりに、それらはコンストラクタのパラメータを直接受け取ります。AnimationSpec の使いやすさを全面的に改善し、ビルダーに依存するのではなくコンストラクタを利用するようにしました。KeyFrames と Tween の期間と遅延を Int に変更しました。これにより、(Long と Int の両方をサポートするための)不要な型キャストとメソッドのオーバーロードがなくなります。(Ica0b4
  • Clickable が削除されました。Modifier.clickable を使用してください。(I84bdf
  • LazyRowItems が追加されました(LazyColumnItems の水平方向スクロール版)。(Ibbcf7
  • 低レベルのステートレス アニメーション API が導入されました。(I63bf7
  • androidx.ui.foundation.TextFieldValue と androidx.ui.input.EditorValue のサポートが終了しました。この型を使用する TextField、FilledTextField、CoreTextField の各 composable もサポートが終了しました。代わりに androidx.ui.input.TextFieldValue を使用してください。(I4066db/155211005
  • IntPx の使用を Int に置き換えました。IntPxPosition を IntOffset に置き換えました。IntPxSize を IntSize に置き換えました。(Ib7b44
  • androidx.ui.foundation.shape.RectangleShape が削除されました。androidx.ui.graphics.RectangleShape を使用してください。(I94939b/154507984
  • サイズ設定情報を示す際に使用するクラスの数を整理統合するため、PxSize ではなく Size クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される幅と高さを示す 2 つの float 値をパックできるようになります。(Ic0191
  • 位置情報を示す際に使用するクラスの数を整理統合するため、PxPosition ではなく Offset クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される x オフセットと y オフセットを示す 2 つの float 値をパックできるようになります。(I3ad98
  • ピンチズーム機能用の Modifier.zoomable が追加されました。(Id5d63
  • Toggleable コンポーネントのサポートが終了しました。代わりに Modifier.toggleable を使用してください。(I35220b/157642842
  • MutuallyExclusiveSetItem のサポートが終了しました。代わりに Modifier.selectable を使用してください。(I02b47b/157642842
  • TestTag のサポートが終了しました。代わりに Modifier.testTag を使用してください。(If5110b/157173105
  • fontWeight パラメータが Text に追加されました。これまでは誤って追加されていませんでした。(I56937
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I19d02
  • VerticalScroller は、すぐに利用可能な Column を提供するようになりました。HorizontalScroller は、すぐに利用可能な Row を提供するようになりました。(Ieca5db/157020670
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(Iede0b
  • Modifier.indication が基盤パッケージに追加されました。これを使用して、操作可能なカスタム要素に押下、ドラッグ、その他のインジケーションを表示できます。(I8425fb/155287131
  • VerticalScroller と HorizontalScroller は、ScrollerPosition で isReversed が設定されている場合に逆スクロールをサポートするようになりました。(I953bd
  • テキスト レイアウトへの composable の追加がサポートされるようになりました。(I1373c
  • CanvasScope の実装を整理統合し、DrawScope と ContentDrawScope のみとしました。CanvasScope の名前を DrawScope に変更しました。DrawScope を更新して Density インターフェースを実装し、LayoutDirection を提供しました。ContentDrawScope の DrawScope サブクラスを削除しました。Painter と PainterModifier が更新され、RTL プロパティを自身で維持しなくなりました。これは DrawScope ですでに提供されているため、手動で提供する必要はありません。(I1798e
  • サポートが終了した DrawBackground API が削除され、Modifier の drawBackground 拡張機能 API に置き換えられました。色、ブラシ、ペイントに関する drawBackground 実装をリファクタリングし、コードパスを削減するとともに、コンポジションの一部として Modifier を作成する必要をなくしました。(I0343a
  • キャンバスを公開するハイレベルの Compose API を更新して、代わりに CanvasScope を公開するようにしました。これにより、ユーザーが独自の Paint オブジェクトを維持管理する必要がなくなります。引き続きキャンバスの利用が必要なユーザーは、drawCanvas 拡張メソッドを使用できます。このメソッドにより、対象のキャンバスに対して Draw コマンドを実行するコールバックが行われます。(I80afd
  • HorizontalScroller と VerticalScroller が、保存されたインスタンス状態を使用してスクロール位置を復元するようになりました。(Ia0faeb/155075048
  • FocusManagerAmbient が削除されました。フォーカスを取得するには、FocusModifier.requestFocus を使用してください。(Ic4826
  • テーブル レイアウトは、更新された API で再び利用できるようになるまで、一時的に削除されました。(Id88a7
  • Canvas オブジェクトをラップしてステートレスの宣言型描画 API サーフェスを公開する CanvasScope API を作成しました。変換は固有のレシーバ スコープ内に含まれます。また、サイズ設定情報のスコープは対応するインセット境界に設定されます。描画オペレーションを構成するためにコンシューマが独自の Paint 状態オブジェクトを維持する必要はありません。

    CanvasScopeSample を追加しました。また、デモアプリを更新して、宣言型グラフィックのデモを追加しました。(Ifd86d

  • ColoredRect が削除されました。代わりに、Box を drawBackground 修飾子とともに使用してください。(I983c7b/152753731

  • TextField にカーソルの色のカスタマイズを追加しました。(I6e33f

  • onTextInputStarted コールバックで提供される SoftwareKeyboardController を使用して、ソフトウェア キーボードの表示 / 非表示を切り替えられるようになりました。(I8dc44b/151860051

  • TextField で使用される TextFieldValue は、次のように使用すると、アクティビティが再作成されても保持できるようになりました: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }I5c3ceb/155075724

  • 一般的に使用されるパラメータを Text() に追加しました。Text(style = TextStyle(textAlign = TextAlign.Center)) のような少数のパラメータを渡すローカル テキスト スタイルを現在作成している場合、Text(textAlign = TextAlign.Center) のようにパラメータを直接指定できます。(I82768

  • フォーカス サブシステムと統合するため、CoreTextField / TextField focusIdentifier パラメータを FocusNode に置き換えました。(I7ea48

  • TextField の更新 - 水平方向のディメンションでは、許可されたすべての使用可能なスペースを占有します。(Ib08dfb/154638552

  • InteractionState と Interaction が追加され、押下やドラッグなどの UI の状態の変化に反応するコンポーネントを簡単に作成できるようになりました。(Icfe25b/152525426

  • RectangleShape を androidx.ui.foundation.shape.* から androidx.ui.graphics.* に移動しました。(Ia74d5b/154507984

  • API 内のすべての null 値許容型の Color が null 値非許容型に置き換えられ、null の代わりに Color.Unset が使用されるようになりました。(Iabaa7

  • TextField API の更新 - onFocus コールバックと onBlur コールバックを、パラメータを持つ単一の onFocusChange(Boolean) コールバックに統合しました。(I66cd3

  • ScaleFit の名前を ContentScale に変更しました。ContentScale を ui-graphics から ui-core モジュールに移動し、Alignment API と同じモジュールで動作するようにしました。FillMaxDimension の名前を Crop に変更しました。FillMinDimension の名前を Fit に変更しました。Fit の名前を Inside に変更しました。これは、ImageView.ScaleType の同等のものに合わせるためです。Crop と Alignment.Center を組み合わせると ImageView.ScaleType.CENTER_CROP と同じ結果が得られ、Fit を Alignment.Center とともに使用すると ImageView.ScaleType.FIT_CENTER と同じ結果が得られ、Inside を Alignment.Center とともに使用すると ImageView.ScaleType.CENTER_INSIDE と同じ結果が得られることを示すドキュメントを追加しました。(I45f09b/152842521

  • ProvideContentColor を削除しました。代わりに Providers で ContentColorAmbient を直接使用してください。(Iee942

  • テキストに色パラメータを追加しました。これにより、テキスト スタイルの色をテーマのスタイルに手動で統合する必要がなくなります。(I41a66

  • DrawModifier API の改善:

    • draw() のレシーバ スコープを ContentDrawScope にしました。
    • draw() のパラメータをすべて削除しました。
    • DrawScope に以前の CanvasScope と同じインターフェースを設定しました。
    • ContentDrawScope に drawContent() メソッドを追加しました。(Ibacedb/152919067
  • ColoredRect のサポートが終了しました。代わりに Box(Modifier.preferredSize(width, height).drawBackground(color)) を使用してください。(I499fab/152753731

  • マテリアル デザイン仕様に従ってシェイプテーマ設定システムを更新しました。ほとんどのコンポーネントで使用できる小、中、大のシェイプを提供できるようにしました。(Ifb4d1

  • 修飾子と演算子を工場出荷時の拡張機能に置き換えました。(I225e4

  • Draggable を修飾子に移動しました。(ID9b16b/151959544

  • Text を androidx.ui.core から androidx.ui.foundation パッケージに移動しました。(I87ce5

  • Checkbox、Switch、Toggleable に enabled パラメータを追加しました。(I41c16

  • リップルを Modifier に変更しました。Clickable はまだ変換されていませんが、推奨される使用法は Clickable(onClick = { ... }, modifier = ripple()) です。(Ie5200b/151331852b/150060763

  • ベクター グラフィック用の既存のサブコンポジション API に代えて、VectorPainter API を追加しました。サブコンポジションの結果は、DrawModifier ではなく VectorPainte オブジェクトになります。以前の DrawVector composable のサポートを終了し、VectorPainter に置き換えました。

    Image(Painter) API の名前を PaintBox(Painter) に変更しました。ImageAsset の代わりに VectorAsset を使用する点を除いて Image composable と同様に動作する Vector composable を作成しました。(I9af9ab/149030271

  • 指定された ImageAsset を画面に描画するとともに、サイズ設定とレイアウトを処理する Image composable を作成しました。この composable は、固有のサイズを基準とする任意の Painter インスタンスの描画をサポートするだけでなく、指定された固定サイズまたは最小サイズもサポートします。(Ibcc8f

  • Button、FloatingActionButton、Clickable に個別の enabled パラメータを追加しました。Button の一部のパラメータの名前と順序を変更しました。(I54b5a

  • Image の名前を ImageAsset に変更し、レイアウトへの参加とコンテンツの描画に使用される Image データと今後使用される Image composable を区別しやすくしました。

    android.graphics.Bitmap に対する拡張メソッド Bitmap.asImageAsset() を作成しました。これにより、従来の Android アプリ開発と compose フレームワークを組み合わせるために役立つ ImageAsset のインスタンスを作成できます。(Id5bbd

  • DrawImage composable を削除しました。既存のレイアウト上に画像を描画する場合は ImagePainter を、スペースを占有する Image を導入する場合は SimpleImage を使用してください。(I595e1b/149827027

  • Stack コンポーネントが右から左への方向性をサポートするようになりました。(Ic9e00

  • Icon、IconButton、IconToggleButton を追加し、AppBarIcon を削除しました。AppBarIcon の既存の用法を IconButton に直接置き換えることにより、正しいタッチ ターゲットを追加できます。使用法についてはサンプルをご覧ください。また、これらのコンポーネントで直接使用できる、マテリアル アイコンのアイコンをご覧ください。(I96849

  • DrawShape composable が削除されました。代わりに DrawBackground 修飾子を使用してください。(I7ceb2

  • AdapterList を追加しました。これは、表示されるアイテムのみを作成して配置するスクロール リスト コンポーネントです。現在の既知の問題は、垂直方向のみであること、子への変更のすべてのケースを完全に処理できないことなどです。(Ib351b

  • Scrollable コンポーネントが追加され、カスタムの Scroller / List を作成できるようになりました。(I5fd37

  • background の名前が DrawBackground に変更され、デフォルトで記憶されるようになりました。(Ia0bd3

  • Box にパディング、枠線、シェイプ、背景のパラメータを追加しました。(I05027b/148147281

  • Canvas コンポーネントを追加しました。この composable はある程度のサイズ(ユーザーが指定するサイズ)を占有するので、CanvasScope による描画が可能になります。(I0d622

  • Border 修飾子の名前を DrawBorder に変更しました。(I8ffcc

  • レイアウトを結合して共通機能を描画するための Box コンポーネントが追加されました。(I6e2a7

  • スクローラーがネイティブな Android のフリング モーション動作を表現するようになりました。(I922afb/147493715

  • DrawBorder が Border 修飾子に置き換えられました。(Id335a

  • Modifier.testTag との混同を避けるため、Modifier.tag の名前が Modifier.layoutId に変更されました。(I995f0

  • ConstraintLayout ガイドラインを作成する際の percent パラメータの名前が fraction に変更されました。(Ida2db

  • ConstraintLayout 境界線のマージンのサポートが追加されました。(I47ffe

  • ConstraintLayout 内の RTL サポートが修正されました。RTL 非認識型 API が追加されました。(I3b1c7

  • ConstraintLayout 用の新しい DSL が追加されました。詳細については、サンプルをご覧ください。(Icaa9a

  • @ExperimentalLayout アノテーションが追加されました。ConstraintLayout、FlowRow、FlowColumn に、API が変更されることを示すタグが付けられています。(I412a8

  • Modifier.padding(InnerPadding) が追加されました。(I94985b/157133803

  • Row と Column で、サポートが終了した RowAlign と ColumnAlign を削除しました。(If60d4b/155858731

  • サポートが終了した LayoutTag() を削除しました。代わりに Modifier.tag() を使用してください。サポートが終了した Modifier.matchParent() を削除しました。代わりに Modifier.matchParentSize() を使用してください。(If8044

  • offsetPx レイアウト修飾子を追加しました。これを使用して、px 単位で(動的)オフセットを定義できます。(I5af57

  • AlignmentLineOffset composable のサポートが終了しました。代わりに relativePaddingFrom() 修飾子を使用してください。CenterAlignmentLine composable が削除されました。(I60107

  • 対応する受信制約が指定されていない場合にのみ、ラップされたレイアウトにサイズ制約を設定する defaultMinSizeConstraints レイアウト修飾子を追加しました(最小制約の場合は 0、最大制約の場合は無限大)。(I311eab/150460257

  • Container が削除されました。代わりに Box を使用してください。(Ibbc2bb/151407926

  • サポートが終了した LayoutWidth、Height、Size 修飾子を削除しました。(Ib0bc1

  • オフセット修飾子のデフォルト パラメータ値を追加しました。(I37f06

  • 対称パディング修飾子を追加しました。(I39840

  • サポートが終了した LayoutAspectRatio 修飾子を削除しました。(I65a74

  • サポートが終了した LayoutAlign 修飾子を削除しました。(I10877

  • ラップされたレイアウトが反対軸の制約なしで測定される原因となっていた、幅と高さの修飾子のバグを修正しました。(I210b8b/154797971

  • verticalGravity パラメータと horizontalGravity パラメータをそれぞれ Row と Column に追加しました。(I7dc5a

  • 任意の Alignment ではなく垂直方向または水平方向の Alignment を受け入れるように、wrapContentWidth と wrapContentHeight を更新しました。垂直方向または水平方向の Alignment を受け入れるように、重力修飾子を更新しました。カスタムの連続 Alignment をサポートすることを目的として Row、Column、Stack を更新しました。(Ib0728

  • Alignment を任意の値でインスタンス化できるようになりました。1D Alignment を追加しました。(Ia0c05

  • EdgeInsets の名前を InnerPadding に変更しました。MaterialButtons の innerPadding パラメータの名前を padding に変更しました。(I66165

  • alignToSiblings が Placeable ではなく Measured を受け入れるようになりました。(I5788d

  • 固有の測定値に対するサイズ変更の修飾子を追加し、この目的のためのコンポーネントを非推奨にしました。(I8295d

  • ConstraintLayout の子のサイズをカスタマイズするためのサポートを追加しました。(Idb1a5

  • サポートが終了した Wrap composable と Center composable を削除しました。(I29e23

  • レイアウト修飾子を定義する新しい API として LayoutModifier2 を追加し、LayoutModifier のサポートを終了しました。(If32ac

  • RowScope と ColumnScope のメンバーに、行と列の外部からアクセスできるようになりました。(I3a641

  • Container のサポートが終了しました。代わりに Box を使用してください。(I675ceb/151407926

  • レイアウト位置をオフセットするための LayoutOffset 修飾子を追加しました。(I0b8a3

  • Compose レイアウトで RTL のサポートを開始しました。(Ia5519

  • LayoutAlign が空き容量を占有しないように更新しました。(I2b14f

  • AspectRatio composable を削除し、修飾子を使用するようにしました。廃止された FlexColumn、FlexRow composable、Spacing 修飾子を削除しました。(Iec8a7

  • Row と Column の LayoutInflexible 修飾子を削除しました。(I0d820

  • TextField の選択を変更するには、Drag 選択ハンドルを実装してください。(I27032

  • TextField の選択用に LongPressAndDrag を実装しました。(I17919

バグの修正

  • FocusModifier のサポートが終了し、Modifier.focus、Modifier.focusRequester、Modifier.focusObserver に置き換えられました。FocusState と FocusDetailedState のサポートが終了し、FocusState2 に置き換えられました。(I46919b/160822875b/160922136
  • runOnIdleCompose の名前が runOnIdle に変更されました。(I83607
  • いくつかのテスト API の名前がより直感的にわかりやすいものになりました。findXYZ API という名前はすべて onNodeXYZ に変更されました。doXYZ API という名前はすべて performXYZ に変更されました。(I7f164
  • サポートが終了した Modifier.ripple を削除しました。clickable はデフォルト インジケーションとしてリップルを使用するようになりました(アプリ内で MaterialTheme {} を設定している場合)。そのため、ほとんどのケースでは clickable を使用するだけでリップル インジケーションを無料で利用できます。リップルの色 / サイズ / 境界パラメータをカスタマイズする必要がある場合は、RippleIndication を手動で作成して、インジケーション パラメータとして clickable に渡します。(I663b2b/155375067
  • 古いサイズテスト API を削除しました。(Iba0a0
  • LayoutNode API が試験運用版になりました。(I4f2e9
  • スクロール方向ロック機能のバージョン 1 が Compose に実装されました。(I1ce7ab/150289741
  • ポップアップ、ダイアログ、メニューがコンテキストに応じた MaterialTheme を継承するようになりました。(Ia3665b/156527485
  • Layout() 関数の測定ブロックからレイアウト方向のパラメータを削除しました。ただし、測定スコープ オブジェクトを介してコールバック内でレイアウト方向を使用できます。(Ic7d9d
  • AbsoluteArrangement を追加しました。これにより、RTL の自動ミラーリングを行わずに Row 内に子を配置することができます。(I3a1df
  • @Untracked アノテーションのサポートが終了しました。@ComposableContract(tracked=false) に置き換えます。(Id211e
  • この変更が行われる前、compose コンパイラ プラグインは、スコープ内の解決された「composer」に「emit 演算子」メソッドが見つかった場合、@Composable 関数内のコンストラクタの呼び出しに対して自明でないインターセプトを実行していました。(I5205ab/158123804
  • viewModel() composable を追加しました。これにより、アクティビティ内またはフラグメント内と同様に、ViewModel を作成し、作成済みの ViewModel を取得できます。(I5fdd1
  • Radius クラスをインライン クラスにリファクタリングしました。コンパニオン作成メソッドを削除し、関数コンストラクタに置き換えました。この関数コンストラクタは、デフォルト パラメータで、y 軸沿いの半径が、必須の x 軸半径パラメータの半径と一致するようになっています。

    DrawScope.drawRoundRect を更新し、2 つの float 値を使用して x 軸沿いと y 軸沿いの半径を個別に示すのではなく、単一の Radius パラメータを使用するようにしました。(I46d1b

  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。Px クラス全体が削除されています。(I3ff33

  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I086f4

  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(Id3434

  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I97a5a

  • TextField のカーソルが、点滅アニメーションで表示されるようになりました。(Id10a7

  • 部分的ジェスチャーが、GestureToken を順に渡していく必要がなくなりました。(Id7ae5

  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I57bff

  • Modifier.semantics のサポートが再開され、上位レベルのコンポーネントでの使用が可能になりました。(I4cfdc

  • AnnotatedString.Builder.addAnnotationString の名前を addStringAnnotation に変更しました。(I5059e

  • Alignment API を更新し、絶対アライメント(RTL コンテキストで自動ミラーリングを行わない)のサポートを追加しました。(I38cd3

  • Layout と LayoutModifier の子を異なるレイアウト方向で測定できるようになりました。(Ibd731

  • 基になる ImageAsset のサブセクションの描画をサポートするため、オプションの rect パラメータを ImagePainter に追加しました。(I0ea9e

  • アイテムを削除する際に AdapterList でクラッシュする問題を修正しました。(Ic64b0b/153195921

  • activity.setContent { } ブロックの中に配置した最初のレイアウトの測定方法を変更しました。以前は、アクティビティ画面全体を表示していましたが、レイアウトを Stack の中に配置するようにしました。画面よりも小さくすることができ、画面の左上に配置されます。以前の動作が必要な場合は、レイアウトに Modifier.fillMaxSize() を適用できます。(Ie88a7b/153453714

  • ui-text-compose モジュールの名前が ui-text に変更されました。ui-text には、現在 CoreText composable と CoreTextField composable が含まれています。(Ib7d47

  • ui-text モジュールの名前が ui-text-core に変更されました。(I57dec

  • ui-framework の下の CoreText composable と CoreTextField composable を ui-text-compose の下に移動しました。プロジェクトに ui-text-compose を含めることができます。(I32042

  • runOnIdleComposerunOnUiThread が ComposeTestRule のメソッドではなくグローバル関数になりました。(Icbe8f

  • [Mutable] State プロパティ デリゲート演算子が、Kotlin 1.4 のプロパティ デリゲート最適化に対応するため、拡張機能に移動されました。by state { ... } または by mutableStateOf(...) を引き続き使用するには、呼び出し元でインポートを追加する必要があります。(I5312c

  • DrawLayerModifier と drawLayer() で、clipToBounds と clipToOutline のデフォルト値が false になりました。(I0eb8bb/152810850

  • LayoutResult の名前を MeasureResult に変更しました。(Id8c68

  • Center composable のサポートが終了しました。LayoutSize.Fill + LayoutAlign.Center 修飾子に置き換えるか、適切な修飾子が適用された Box composable または Stack composable に置き換える必要があります。(Idf5e0

  • LayoutFlexible の名前を LayoutWeight に変更しました。このパラメータを補うために tight パラメータの名前を変更しました。(If4738

  • DrawVector は、通常のコンポーズ可能な関数から変更され、レイアウトの背景としてベクトルを描画する修飾子 drawVector() を返すようになりました。(I7b8e0

  • コンポーズ可能な関数 Clip を修飾子 drawClip() に置き換えました。DrawClipToBounds は、四角形のレイヤ境界にクリップするだけでよい場合に便利な修飾子です。(If28eb

  • コンポーズ可能な関数 DrawShadow を drawShadow() 修飾子に置き換えました。シャドウは、LayerModifier の一部として描画されるようになりました。(I0317a

  • androidx.compose.ViewComposer が androidx.ui.node.UiComposer に移動され、androidx.compose.Emittable が削除されました。これは ComponentNode と重複していました。androidx.compose.ViewAdapters が削除されました。サポート対象のユースケースではなくなりました。Compose.composeInto のサポートが終了しました。代わりに setContent または setViewContent を使用してください。Compose.disposeComposition のサポートが終了しました。代わりに、setContent が返す Compositiondispose メソッドを使用してください。androidx.compose.Compose.subcomposeInto は androidx.ui.core.subcomposeInto に移動されました。ComponentNode#emitInsertAt の名前が ComponentNode#insertAt に変更されました。ComponentNode#emitRemoveAt の名前が ComponentNode#removeAt に変更されました。ComponentNode#emitMode の名前が ComponentNode#move に変更されました。(Idef00

  • Wrap composable は非推奨になりました。これは、LayoutAlign 修飾子または Stack composable で置き換えることができます。(Ib237f

  • レイアウトの方向を親レイアウト ノードから子レイアウト ノードに伝えるようにしました。レイアウト方向修飾子を追加しました。(I3d955

  • 新しく作成された Modifier に複数の Modifier インスタンス間で共有できる元の Painter への参照があるため、Painter.toModifier の名前を Painter.asModifier に変更しました。(I7195b

  • サポート終了: Draw composable はそれ自体が一般的なバグの原因になります。(I78392b/149827027

  • LayoutPadding 修飾子で右から左方向をサポートするようになりました。(I9e8da

  • Density と DensityScope が 1 つのインターフェースに統合されました。ambientDensity() ではなく、DensityAmbient.current を使用できるようになりました。withDensity(density)ではなく、with(density)だけになりました。(I11cb1

  • ValueHolder クラスを削除しました。サブクラスで値の更新を監視できるよう、アニメーション値のフィールドを抽象化するために、AnimatedValue クラスと AnimatedFloat クラスを再構成しました。

    • AnimatedValue、AnimatedFloat などで使用するモデルクラスを追加しました。
    • 値を更新する間にアニメーションを表示するための、軽量の新しい @Composable API セットを追加しました。
    • I79530
  • アンビエント API を大幅に変更しました。詳細については、ログと Ambient<T> のドキュメントをご覧ください。(I4c7eeb/143769776

  • Placeable#get(AlignmentLine) から返されるアライメント ラインの Int 位置が非 null になりました。クエリされたアライメント ラインが見つからなかった場合は、AlignmentLine.Unspecified が返されます。(I896c5b/158134875

  • 再コンポーズ時にクラッシュを引き起こす ConstraintLayout バグを修正しました。(Ibee5ab/158164341

  • WithConstraints 後置ラムダ API が変更されました。2 つのパラメータに代わってレシーバ スコープが設けられ、constraints と layoutDirection に加えて、Dp 単位で指定する minWidth、maxWidth、minHeight、maxHeight プロパティが用意されました。(I91b9ab/149979702

  • LayoutModifier2 の名前が LayoutModifier に変更されました。(Id29f3

  • Layout と LayoutModifier2 の組み込み測定関数に IntrinsicMeasureScope レシーバを追加しました。これにより、暗黙的に伝播されるレイアウト方向を持つ組み込みクエリ API が提供されます。(Id9945

  • LayoutDirectionAmbient のサポートが終了しました。ロケールで定義されたレイアウト方向を読み取るには、ConfigurationAmbient の localeLayoutDirection を使用します。(I851b1

  • LayoutCoordinates に positionInParent と boundsInParent を追加しました。(Icacddb/152735784

  • ParentData composable のサポートが終了しました。測定ブロック内で認識するためにレイアウトの子にタグを付ける必要がある場合は、ParentDataModifier インターフェースを実装する修飾子を作成するか、LayoutTag 修飾子を使用してください。(I51368b/150953183

  • コンポーズ可能な関数 OnPositioned および OnChildPositioned に代えて、OnPositionedModifier と OnChildPositionedModifier を追加しました。(I2ec8f

  • LayoutPadding の負のパディングは使用できなくなりました。負の位置オフセットには LayoutOffset を使用してください。(Ifb5b1

  • WithConstraints に LayoutDirection パラメータが追加されました。(I6d6f7

  • ComposeFlags.COMPOSER_PARAM フラグを true に更新しました。これにより、compose プラグインのコード生成方法が変更されます。概略としては、ランタイムが実行を適切に管理できるようにするため、@Composable 関数が追加の合成パラメータで生成され、このパラメータがその後の @Composable 呼び出しに渡されます。これは互換性を破る重大なバイナリの変更ですが、compose のすべての許可される使用方法でソースレベルの互換性が保持されます。(I7971c

  • LayoutCoordinates を変更して providedAlignmentLines を Map ではなく Set にし、LayoutCoordinates が値を取得するために get() 演算子を実装するようにしました。これにより、修飾子ごとに新しいコレクションを作成しなくても、複数の修飾子で 1 つ以上のまとまった値を変更することが容易になります。(I0245a

  • LayoutCoordinates に位置プロパティがなくなりました。LayoutModifier、回転、スケーリングを考慮すると、位置プロパティは妥当ではありません。代わりに、デベロッパーは parentCoordinates と childToLocal() を使用して、ある LayoutCoordinate から別の LayoutCoordinate への変換を計算する必要があります。

    LayoutCoordinates は、サイズ プロパティに PxSize ではなく IntPxSize を使用します。レイアウトでは整数のピクセルサイズを使用するため、すべてのレイアウト サイズで浮動小数点値ではなく整数を使用する必要があります。(I9367b

  • Constraints の API サーフェスを改善しました。(I0fd15

  • TextDirection.Content を追加しました。(I48f36

  • ツールバー メニューを調整して、コピー、切り取り、貼り付けが適切に表示されるようにしました。(Id3955

  • TextField の選択用に FloatingToolbar を追加しました。(Ie8b07

  • TextDirectionAlgorithm の名前が TextDirection に変更されました。(I75ce8

  • TextDirection の名前が ResolvedTextDirection に変更されました。(I3ff38

  • TextField の選択に HapticFeedback を追加しました。(I58050

  • Copy、Cut、Paste の各メソッドを TextField の選択に追加しました。(Idb70b

  • TestTag と Semantics が削除されました。代わりに Modifier.testTag と Modifier.semantics を使用してください。(I15ff0b/158841414

  • Locale と LocaleList のパッケージ名を androidx.ui.text から androidx.ui.intl に変更しました。(I8132c

  • API の変更: AnnotatedString(builder: Builder) の名前を annotatedString(builder: Builder) に変更しました。(Ia6377

  • API の変更: AnnotatedString.Item の名前を AnnotatedString.Range に変更しました。(I2d44d

  • テキスト関連の操作用のツールバーを追加しました。(I49d53

  • 新しい LifecycleOwnerAmbient を利用できるようになりました。Compose UI で使用している Activity は、androidx.activity.ComponentActivity(または AppCompatActivity)を拡張する必要があります。android.app.Activity に対する setContent のサポートは終了しました。(Idb25ab/153141084

  • androidx ポリシーに合わせて、ui-android-text パッケージ名(androidx.text)を androidx.ui.text.platform に置き換えました。(I42711