Compose Foundation

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

構造

Compose は、androidx 内の 6 つの Maven グループ ID を組み合わせたものです。各グループにはそれぞれの目的に応じて Compose の機能のサブセットが含まれており、それぞれに固有のリリースノートがあります。

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

グループ説明
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 の基本コンポーネント。

依存関係の宣言

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

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

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerVersion "1.4.21-2"
        kotlinCompilerExtensionVersion "1.0.0-alpha11"
    }
}

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

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

フィードバック

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

新しい問題を報告する

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

バージョン 1.1

バージョン 1.1.0-alpha06

2021 年 10 月 13 日

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

API の変更

  • Layout の子のないオーバーロードが追加され、効率が改善されました。(Ib0d9a
  • SemanticsNodeInteraction.performSemanticsAction は、関数が呼び出された SemanticsNodeInteraction を返すようになりました。(I9e5db
  • 指定したマッチャーと一致するコンテンツにスクロール可能なコンテナをスクロールする performScrollToNode(matcher: SemanticsMatcher) を追加しました。(Ic1cb8

バージョン 1.1.0-alpha05

2021 年 9 月 29 日

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

API の変更

バージョン 1.1.0-alpha04

2021 年 9 月 15 日

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

API の変更

  • performGestureGestureScope が非推奨になりました。それぞれ performTouchInputTouchInjectionScope に置き換えられました。(Ia5f3f, b/190493367
  • タップ ターゲットの最小サイズが含まれる touchBoundsInRootSemanticsNode に追加しました。これにより、デベロッパーはタップ ターゲットがユーザー補助の最低条件を満たすことができます。(I2e14bb/197751214

バグの修正

  • Android 12 デバイスで、ストレッチ オーバースクロールのサポートを追加しました。(Iccf3cb/171682480

バージョン 1.1.0-alpha03

2021 年 9 月 1 日

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

新機能

  • Kotlin 1.5.30 に依存するように Compose 1.1.0-alpha03 を更新しました。(I74545

API の変更

  • スクロール向けのグロー効果が追加されました。オーバースクロール視覚効果の構成を可能にする新しい試験運用版 OverScrollConfiguration API が追加されました。オーバースクロール効果をオフにするには、null を指定します。(I0c304b/171682480
  • AwaitPointerEventScope に withTimeout() と withTimeoutOrNull() が追加されました。(I507f0b/179239764b/182397793
  • クリップされた境界を取得するテストメソッドを追加しました。(I6b28e
  • ユーザー補助機能を保証するため、セマンティクスとポインタ入力で使用する最小タップ ターゲット サイズを ViewConfiguration に追加しました。(Ie861c

バージョン 1.1.0-alpha02

2021 年 8 月 18 日

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

API の変更

  • Modifier.sizerequiredSize の DpSize バージョンを追加しました。(I3fc7eb/194219828

バージョン 1.1.0-alpha01

2021 年 8 月 4 日

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

API の変更

  • 送信元と送信先の長方形を使用する DrawScope#drawImage メソッドを更新し、オプションの FilterQuality パラメータを使用します。これは、ピクセルベースのアートに合わせてスケールアップする際にピクセル化されるピクセルアートに対して有用です。オプションの FilterQuality パラメータを使用するように BitmapPainter と Image composable を更新しました。(Ie4fb0b/180311607
  • TextField は、[戻る] ボタンが押されたときに選択をクリアするようになりました。これは Android EditText の動作と一致します。(I3ca16b/174173645
  • カーソル ハンドルを追加しました。(I07a82b/173016579

バグの修正

  • 遅延リストと通常のスクロール コンポーネントに対するセマンティクス アクションによるスクロールがアニメーション化されるようになりました。(Id9066b/190742024

外部からの協力

  • LazyVerticalGrid が水平方向と垂直方向の両方のレイアウト パラメータを受け入れるようになりました。(If9c92

バージョン 1.0

バージョン 1.0.4

2021 年 10 月 13 日

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

依存関係の更新

  • Kotlin 1.5.31 に依存するように更新しました。

バージョン 1.0.3

2021 年 9 月 29 日

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

依存関係の更新

  • Kotlin 1.5.30 に依存するように更新しました。

バージョン 1.0.2

2021 年 9 月 1 日

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

Compose 1.0.2 リリースをサポートするように更新しました。Compose 1.0.2 は、引き続き Kotlin 1.5.21 と互換性があります。

バージョン 1.0.1

2021 年 8 月 4 日

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

依存関係の更新

  • Kotlin 1.5.21 に依存するように更新しました。

バージョン 1.0.0

2021 年 7 月 28 日

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

1.0.0 の主な機能

これは Compose の最初の安定版リリースです。詳細については、Compose リリースの公式ブログをご覧ください。

既知の問題

  • 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.foundation:foundation:1.0.0-rc02androidx.compose.foundation:foundation-layout:1.0.0-rc02 がリリースされました。バージョン 1.0.0-rc02 に含まれる commit については、こちらをご覧ください

  • 固定サイズで定義されたパスの問題に対処するために、汎用シェイプの境界レンダリングを更新しました。(aosp/1748871b/191817116

バージョン 1.0.0-rc01

2021 年 7 月 1 日

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

API の変更

  • Canvas がユーザー補助用の contentDescription パラメータをサポートするようになりました。(Ib547c

バグの修正

  • 無効化されたボタン、カード、チェックボックス、および全体的な Modifier.clickable(enabled=false) は、親に移動しようとするクリックをブロックするようになります。(Ic2c3bb/183908811

バージョン 1.0.0-beta09

2021 年 6 月 16 日

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

API の変更

  • ManualFrameClock を削除しました。アニメーションを制御する必要がある場合は、代わりに composeTestRule.mainClock を使用してください。(I3c3e8b/189951065
  • 列挙型の Role と LiveRegionMode を、プライベート コンストラクタを含むインライン クラスに変更しました(Id1890
  • KeyboardCapitalization をインライン クラスに変換しました。(Id5a1c
  • TextOverflow をインライン クラスに変更しました。(I433af

バグの修正

  • LazyColumn/Row アイテムに一意のキーを指定すると、キーに基づいてスクロール位置が維持されるようになりました。つまり、現在表示されているアイテムの前でアイテムを追加または削除すると、指定されたキーを持つアイテムが最初に表示されるアイテムとして保持されます。(Id263fb/184257857
  • 現在のところ、キー定数は @ExperimentalComposeUiApi です。コードを使用すると、安定化に先立ってプライベート定数を宣言できます。(Ia5d48
  • AndroidComposeTestRule に IdlingStrategy を追加しました。テスト フレームワークは、この戦略を使用して、静止状態を待機または実現する代替メカニズムをインストールできます。独自の戦略をインストールするには、テストの開始前に AndroidComposeTestRule.setIdlingStrategyFactory() を使用してください。(I608fa

プロファイル ルールの追加

このリリースでは、以下の compose モジュールにプロファイル ルールが追加されました。(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 で指定します。このファイルでは、1 行に 1 つずつルールを指定します。ここでのルールは、ライブラリ内のメソッドまたはクラスとマッチングするパターンです。ルールの構文は、人が読める ART プロファイル形式のスーパーセットで、adb shell profman --dump-classes-and-methods ... を使用する際に使用されます。ルールは、メソッドまたはクラスをターゲットとする 2 つの形式のいずれかを使用します。

  • メソッドルールのパターンは次のようになります。

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • クラスルールのパターンは次のようになります。

    <CLASS_DESCRIPTOR>
    
  • 上記の <FLAGS> は、このメソッドに「ホット」、「起動」、または「起動後」のフラグを付けるかどうかを示す文字 HSP(1 つまたは複数)です。

  • <CLASS_DESCRIPTOR> は、ターゲットとなるメソッドが属するクラスの記述子です。たとえば、クラス androidx.compose.runtime.SlotTable の記述子は、Landroidx/compose/runtime/SlotTable; です。

  • <METHOD_SIGNATURE> はメソッドのシグネチャで、メソッドの名前、パラメータの型、戻り値の型を含みます。たとえば、LayoutNode のメソッド fun isPlaced(): Boolean のシグネチャは、isPlaced()Z です。

  • 1 つのルールに複数のメソッドまたはクラスを含める場合は、これらのパターンにワイルドカード(***?)を使用できます。

ルールの機能

  • フラグ H が付いているメソッドは、このメソッドが「ホット」メソッドであり、事前コンパイルが必要であることを示します。

  • S フラグが付いているメソッドは、このメソッドが起動時に呼び出されるメソッドであり、コンパイルのコストと起動時にメソッドを解釈するコストを回避するために事前コンパイルが必要であることを示します。

  • P フラグが付いているメソッドは、このメソッドが起動後に呼び出されることを示します。

  • このファイルに存在するクラスは、このクラスが起動時に使用されるクラスであり、クラス読み込みのコストを回避するためにヒープで事前割り当てする必要があることを示しています。

ルールの仕組み

  • ライブラリは、AAR アーティファクトにパッケージするルールを定義できます。これらのアーティファクトを含むアプリがビルドされると、これらのルールがマージされ、マージルールを使用して、アプリに固有のコンパクトなバイナリ ART プロファイルが作成されます。ART では、アプリがデバイスにインストールされた際にこのプロファイルを利用して、アプリの特定の部分を事前にコンパイルし、アプリのパフォーマンス(特に初回実行時)を改善できます。なお、これはデバッグ可能なアプリには影響しません。

バージョン 1.0.0-beta08

2021 年 6 月 2 日

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

API の変更

  • NestedScrollSource 列挙型がインライン クラスに置き換えられました。(Ie321bb/187055290
  • 列挙型の使用をインライン クラスにリファクタリングして、新しい列挙値の追加時に網羅的な when ステートメントの問題を回避できるようにしました。(I2b5eb
  • clickable と toggleable にタップ タイムアウトを追加して、スクロールやドラッグの際にリップルが表示されないようにしました。(Ia2704b/168524931
  • ContentDescription と Text のセマンティクス プロパティが、単一の値ではなくリストになり、連結ではなくそのまま結合できるようになりました。また、これらの変更を活用できるように改善されたテスト API も提供されています。(Ica6bfb/184825850
  • Modifier.focusModifier() のサポートが終了し、Modifier.focusTarget() に置き換えられました。(I6c860
  • KeyboardType 列挙型は、インライン クラスに置き換えられました。(I73045b/187055290
  • FocusState 列挙型が FocusState インターフェースに置き換えられました(Iccc1ab/187055290
  • ImeAction 列挙型がインライン クラスに置き換えられました。(I18be5b/187055290
  • AnnotatedString.withAnnotation 関数が ExperimentalComposeApi ではなく ExperimentalTextApi になりました。(I0cd0a
    • TextUnitType が指定された TextUnit コンストラクタが、ExperimentalComposeApi ではなく ExperimentalTextApi になりました。
  • PaddingValues が @Immutable ではなく @Stable になりました。(I88c50

バグの修正

  • 空でないテキストの空白の領域を長押しするとクラッシュする問題を修正しました。(I33ab5b/187437299
  • SelectAll の後にツールバーが表示されるようになりました。(I495d9b/185919613
  • スクロール可能なコンテナが交差軸上の子をクリッピングする問題を修正しました。これは Card アイテムを含む LazyRow がある場合に容易に再現できましたが、今後はシャドウがクリップされなくなります。(Icb635b/186318448
  • Modifier.combinedClickable の使用時に、リップルなどのインジケーションを長押しクリックすると停止することがある問題を修正しました。(I2298cb/186223077
  • detectDragGesuresdetectVerticalGesturesdetectHorizontalGestures が位置変更を自動的に使用するようになり、onDrag コールバックで change.consumePositionChange を呼び出す必要がなくなりました(I42fc4b/185096350b/187320697
  • Modifier.onGloballyPositioned() は、すべての修飾子を適用した後のレイアウト座標ではなく、修飾子チェーン内のこの修飾子の座標を報告するように変更されました。これにより、報告される座標が、修飾子の順序の影響を受けるようになりました。(Ieb67db/177926591

バージョン 1.0.0-beta07

2021 年 5 月 18 日

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

API の変更

  • 次に表示されるアイテムをプリフェッチするロジックが LazyColumn/Row に導入されました。(I8a4bcb/184940225
  • クリップ選択ハンドルが追加されました。(Iff80db/183408447

バグの修正

  • LazyColumn/Row は、スクロールされて画面から消えたときでも、前に表示されていたアクティブな(破棄されていない)アイテムを最大 2 つまで維持するようになりました。これにより、スクロールのパフォーマンスを改善する新しいアイテムをコンポーズする必要がある場合に、コンポーネントがアクティブなサブコンポジションを再利用することが可能になります。(Ie5555
  • paintBackground を削除しました。(I38660
  • DrawScope を使用して選択範囲の背景を描画するようにしました。(I73c61b/186674472
  • spacedBy 調整を使用して重み付けされた子をレイアウトする Row/Column に影響する beta06 回帰を修正しました。(Ifaf8cb/187326588

バージョン 1.0.0-beta06

2021 年 5 月 5 日

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

API の変更

  • ナビゲーション ジェスチャーとの競合を解決しました(I1145e
  • コレクションとそのアイテムをユーザー補助サービスに指定できる CollectionInfo と CollectionItemInfo ユーザー補助 API を追加しました(Id54efb/180479017
  • インデックス登録されたアイテムのリストを特定のインデックスを付加されたアイテムにスクロールする SemanticsActions.ScrollToIndex と、キーを持つアイテムを使用してリスト内のアイテムのインデックスを取得する SemanticsProperties.IndexForKey を追加しました。どちらのアクションも LazyList によって実装されます。
    • 指定されたインデックスにリストをスクロールする SemanticsNodeInteraction.performScrollToIndex と、指定されたキーを持つアイテムにリストをスクロールする SemanticsNodeInteraction.performScrollToKey を追加しました。(I4fe63b/178483889b/161584524
  • AnnotatedString による TextFieldValue.Saver へのサポートが追加されました。AnnotatedString.Builder に addTtsAnnotation と withAnnotation のユーティリティ関数を追加しました(I8cbdcb/178446304
  • デフォルトの 0.dp パラメータ値が PaddingValues(horizontal, vertical) に追加されました。(I05571b/181336792

バグの修正

  • weight(fill = false) の行と列の子が、使用可能なメイン軸のスペース全体を親に入力させる動作を示さなくなりました。(Ied94db/186012444b/184355105

バージョン 1.0.0-beta05

2021 年 4 月 21 日

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

API の変更

  • FlingBehavior インターフェースが @Stable としてマークされるようになりました。すべての実装は、@Stable の契約を遵守している必要があります。(I93354b/184830577

バグの修正

  • ACTION_SCROLL_FORWARDACTION_SCROLL_BACKWARDaccessibilityActionScrollLeftaccessibilityActionScrollUpaccessibilityActionScrollRightaccessibilityActionScrollDown のユーザー補助のスクロール操作を修正しました。スクロール可能な範囲の終わりまでスクロールされる代わりに、特定の方向に 1 画面ずつスクロールされるようになりました。(Ieccb0
  • ui-test-manifest と ui-tooling-data の AndroidManifest ファイルに、Android 12 との互換性が備わりました。(I6f9deb/184718994

バージョン 1.0.0-beta04

2021 年 4 月 7 日

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

API の変更

  • SoftwareKeyboardController の hideSoftwareKeyboard と showSoftwareKeyboard を、それぞれ hide()show() に名前を変更しました。
    • 完全な CompositionLocal インターフェースを提供して、LocalSoftwareKeyboardController を設定できるようにしました(特にテストに役立ちます)。(I579a6
  • TextOverflow.Visible が導入されました。(Ic8f89
  • RowScopeColumnScopeBoxScopeBoxWithConstraintsScope のパブリック インスタンスが削除されました。(I4e83eb/181869067

バグの修正

  • エッジの LazyColumn/LazyRow のアイテムが高速フリングの後に正しく配置されない問題を修正しました。(Ie4d13b/183877420
  • この変更以前は、ローカルのコンポーズ可能な関数はパラメータに基づいてスキップ可能でした。この変更以降は、ローカルのコンポーズ可能な関数はスキップされなくなります。ローカル関数が親からパラメータを取得するのが想定される一般的な動作であり、バグのよくある理由がスキップであるため、この変更が行われました。

    以下の例を参照してください。

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    この変更以前は、count のパラメータが更新された後も、ShowCount のコンポーズ可能な関数は常にスキップされていました。この認証バッジの取り消しは実施されないことになりました。(I5648a

バージョン 1.0.0-beta03

2021 年 3 月 24 日

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

API の変更

  • DefaultMonotonicFrameClock はサポートが終了しました。MonotonicFrameClock を指定せずに withFrameNanos または Recomposer.runRecomposeAndApplyChanges を呼び出すと、IllegalStateException がスローされるようになりました。(I4eb0d

バグの修正

  • 速度が 0 の場合でも、FlingBehavior.performFling() が呼び出されるようになりました(I0b6e5b/181237123

バージョン 1.0.0-beta02

2021 年 3 月 10 日

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

API の変更

  • LazyColumn 測定ロジックに複数の小規模な最適化を追加しました(Ic6889
  • TextField の以前の SoftwareKeyboardController インターフェースを置き換える、新しい LocalSoftwareKeyboardController コンポジション ローカル API を追加しました。(I5951eb/168778053
  • TextField の以前の SoftwareKeyboardController インターフェースを置き換える、新しい LocalSoftwareKeyboardController コンポジション ローカル API を追加しました。(I84472b/168778053

バグの修正

  • 試験運用版 API の一般使用に対する制限を適用します(I6aa29b/174531520

バージョン 1.0.0-beta01

2021 年 2 月 24 日

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

これは、Compose 1.0.0 ベータ版の最初のリリースです。

API の変更

  • onStart コールバックを detectDragGestures に追加しました(I67269b/179995594
  • 組み込み関数に合わせてサイズ変更するための修飾子が試験運用版ではなくなりました。(I15744
  • dp アサーションを削除しました(I798d2
  • すべてのテキスト フィールドから SoftwareKeyboardController コールバックが削除され、まもなく新しい API に置き換えられます。(Iae869b/168778053
  • MeasureBlocks の名前が MeasurePolicy に変更され、機能的なインターフェースになりました。Layout API を、MeasurePolicy を使用するように更新または簡素化しました。(Icab48b/167662468b/156751158
  • InteractionState[Mutable]InteractionSource に置き換えました。
    • インターフェースは、操作イベントを送受信する役割を担います。
    • interactionState = remember { InteractionState() }ButtonModifier.clickable() などのコンポーネントに渡す代わりに、interactionSource = remember { MutableInteractionSource() } を使用します。
    • Interaction.Pressed in interactionState ではなく、InteractionSource で拡張関数(InteractionSource.collectIsPressedAsState() など)を使用する必要があります。
    • 複雑なユースケースの場合は、InteractionSource.interactions を使用して操作フローを確認できます。詳しくは、InteractionSource のドキュメントとサンプルをご覧ください。
    • I85965b/152525426b/171913923b/171710801b/174852378
  • サポートが終了した LayoutCoordinates メソッドを削除しました。positionInParent と boundInParent のプロパティの代わりに、関数を使用してください(I580edb/169874631b/175142755)。
  • 低レベルのテキスト コンポーネント(CoreTextField など)からの入力セッション用に、新しい TextInputSession を作成しました。(I8817fb/177662148
  • Placeable は、子レイアウトが実際に測定したサイズを表す measuredSize を公開するようになりました。このサイズは測定の制約を考慮しない場合があります。(Ib2729b/172560206b/172338608
  • selectionGroup 修飾子を追加し、ユーザー補助機能を提供するためにタブやラジオボタンのコレクションをマークできるようにしました(Ie5c29
  • LazyListState.animateScrollToItem を追加しました

    このメソッドは、リスト内の特定のアイテムにスクロールします。(I4bfd7

  • ScrollableState.smoothScrollBy() の名前を animateScrollBy() に変更しました LazyListState.snapToItemIndex() の名前を scrollToItem() に変更しました ScrollState.smoothScrollTo() の名前を animateScrollTo() に変更しました(I35ded

  • Modifier.zoomable を Modifier.transformable に置き換えました。特定の機能として、smoothPanBy と smoothRotationBy を追加しました。(Ifc32bb/175294473

  • compositionLocalOfstaticCompositionLocalOfdefaultFactory は、オプションではなく必須になりました。

    この変更により、null 値非許容型(デフォルト ファクトリが提供されていない)で発生する可能性のある型エラーを解消しました。これまでは、null 値非許容型に対して null 参照を指定していました。

    null 値許容型の場合は、{ null } をデフォルト ファクトリとして提供することを検討してください。

    null 値許容型を持たないローカル変数は、有効なデフォルト値を指定しない限り、使用しないことをおすすめします。有効なデフォルトが存在しない場合、defaultFactory ラムダは例外をスローします。ただし、例外がスローされると、ローカル変数のユーザーは、その変数が型システムで適用されないという前提で、その変数に暗黙的に依存することになります。(Ifbd2a

  • Indication#createIndication()Indication#rememberUpdatedIndication(InteractionState) に変更し、IndicationInstance#drawIndication() から InteractionState パラメータを削除しました。IndicationInstance は、視覚効果の描画のみを担当し、InteractionState の変更に応じてアニメーションまたは書き込みの状態を開始することはできません。これらのアニメーションと状態の書き込みは、代わりに rememberUpdatedIndication() の中で行う必要があります。Modifier.indicationindication パラメータも必須パラメータに変更しました。(Ic1764b/152525426

  • テキスト アクションでフォーカスを自動的に確認するようになりました(I13777b/179648629

  • runBlockingWithManualClock を削除しました(I15cdcb/179664814

  • Modifier.verticalScroll() / horizontalScroll() のスクロール位置が Ints で表されるようになりました(I81298

  • smoothScrollBy メソッドと scrollBy メソッドのパッケージを androidx.compose.foundation.gestures.* に変更しました(I3f7c1b/175294473

  • FlingConfig の名前を FlingBehavior に変更し、事前定義された Decay ではなく一時停止アニメーションをカスタマイズできるようにしました。(I02b86b/175294473

  • サイズ修飾子の名前を変更しました。Modifier.width/height/size の名前を requiredWidth/requiredHeight/requiredSize に変更しました。Modifier.preferredWidth/preferredHeight/preferredSize の名前を width/height/size に変更しました。(I5b414

  • defaultMinSizeConstraints の名前を defaultMinSize に変更しました。(I4eaae

  • Modifier.tapGestureFilter を削除しました。代わりに Modifier.pointerInput { detectTapGestures(...) } を使用してください。(I266edb/175294473

  • 一部の消費をポインタ入力システムから削除しました。消費を部分的に調整する場合は、Modifier.nestedScroll を使用することをおすすめします。(Ie9c9b

  • Orientation を foundation パッケージに移動しました。VelocirtTracker を ui.gesture から ui.input.pointer に移動しました。(Iff4a8b/175294473

  • AnimationClockObservable とサブクラスを削除しました。AnimatedFloat を削除しました。(Icde52b/177457083

  • drawerState.open() と drawerState.close() が suspend 関数になりました。コンポジションのスコープを取得して呼び出しを行うには、rememberCoroutineScope() を使用します(I16f60b/175294473

  • プロバイダの名前を CompositionLocalProvider に変更しました

    • コンポジション コンストラクタがキーパラメータを受け入れなくなり、サポートを終了しました。
    • currentCompositeKeyHash が、構成可能なトップレベル関数ではなく、構成可能なトップレベル プロパティになりました。
    • CompositionData と CompositionGroup を androidx.compose.runtime.tooling 名前空間に移動しました
    • ComposableLambda は具象クラスではなくインターフェースになり、型パラメータは含まれなくなりました。
    • ComposableLambdaN は具象クラスではなくインターフェースになり、型パラメータは含まれなくなりました。
    • snapshotFlow 関数を androidx.compose.runtime 名前空間に移動しました
    • SnapshotMutationPolicy の統合メソッドは試験運用版ではなくなりました
    • @TestOnly トップレベルの clearRoots 関数は削除され、不要になりました。
    • keySourceInfoOf 関数と resetSourceInfo 関数は削除され、不要になりました。
    • Composer.collectKeySourceInformation は削除され、不要になりました。
    • isJoinedKey、joinedKeyLeft、joinedKeyRight の各メソッドが削除され、不要になりました。
    • いくつかのトップレベル API を別のファイルに移動し、再編成しました。Kotlin のファイルクラス セマンティクスにより、バイナリとの互換性は損なわれますがソースコードとの互換性は維持されるので、多くのユーザーにとって問題にはなりません。
    • I99b7db/177245490
  • Modifier.scrollable を再構築しました。ScrollableController クラスの代わりにスクロール可能なインターフェースを使用するようになりました(I4f5a5b/174485541b/175294473

  • Modifier.draggable は、単純なラムダの代わりに、DraggableState を受け入れるようになりました。rememberDraggableState { delta -> } を介して状態を作成し、以前と同じ動作を実現できます(Ica70fb/175294473)。

  • 必要な組み込みサイズに変更するために、requiredWidth(IntrinsicSize) 修飾子と requiredHeight(IntrinsicSize) 修飾子を追加しました。(I0a6b4

  • サポートが終了した emptyContent() を削除しました。代わりに {} を使用してください。(Idb33fb/179432510

  • これまでにサポートが終了している API をいくつか削除しました(Ice5dab/178633932

バグの修正

  • TextField の以前の SoftwareKeyboardController インターフェースを置き換える、新しい LocalSoftwareKeyboardController コンポジション ローカル API を追加しました。(I658b6b/168778053

バージョン 1.0.0-alpha12

2021 年 2 月 10 日

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

API の変更

  • Modifier.pointerInput は、ポインタ入力検出コルーチンを新しい依存関係で再開するタイミングを示す remember キーを必要とするようになりました。(I849cd
  • 更新のテスト: hasText() はテキスト フィールドの入力テキストとラベル / ヒント / プレースホルダ テキストの両方を確認します(Iab803
  • PaddingValues.Absolute が追加されており、PaddingValues を受け入れる API で使用できます。(Ia5f30
  • onImeActionPerformed は非推奨になりました。代わりに KeyboardActions を使用してください(If0bbdb/179071523
  • ImageBitmap や ImageVector の命名規則に合うように、ImagePainter の名前を BitmapPainter に変更し、VectorPainter と名前を揃えました。(Iba381b/174565889
  • 部分文字列を引数として使用する部分文字列のテスト API を改善しました(Icbe78
  • 無限アニメーションに適用される InfiniteAnimationPolicy コルーチン コンテキスト要素を導入しました。ComposeTestRule を使用してテストを実行する場合を除き、デフォルトではポリシーはインストールされません。(I50ec4b/151940543
  • Animatable.snapTo と Animatable.stop が suspend 関数になりました(If4288
  • ComponentActivity.setContent を androidx.activity:activity-compose モジュールの androidx.activity.compose.setContent に移動しました。(Icf416
  • destructuring と copy() メソッドを、これらをほとんど使用しないクラスから削除しました。(I26702b/178659281
  • LazyColumn / LazyRow のカスタムキーのサポートを追加しました。これにより、アイテムの並べ替えをよりスマートに処理できます。要素を並べ替える際、または中央からアイテムを削除した際に、remember {} ブロックに保存した状態がアイテムと一緒に移動するようになります。

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • Indication#createInstance を @Composable に変更し、LocalIndication を () -> Indication ではなく Indication を含むように変更しました。(I5eeeab/157150564

  • Constraints.enforceConstraints.constrain に置き換えました。(I8b8ea

  • loadFontResource は非推奨になりました。代わりに fontResource を使用してください。imageResource、loadImageResource、vectorResource、loadVectorResource は非推奨になりました。代わりに painterResource を使用してください。(I6b809

  • パフォーマンス上の理由から、ScrollAxisRange セマンティクスは、浮動小数点値を直接使用するのではなく、浮動小数点数を返すラムダを使用するようになりました。(If4a35b/178657186

  • ユーザー補助機能のために、テキスト フィールドの編集可能な入力をマークする EditableText セマンティクスを追加しました。セマンティクスを確認するための対応するテストメソッドを追加しました(I8e07a

  • Modifier.clickable でダブルクリックと長押しクリックのサポートが終了しました。この機能を実現するには Modifier.combinedClickable を使用してください。(Iafad1

  • toIntPx() の名前を roundToPx() に変更しました(I9b7e4b/173502290

  • IntBounds の名前を IntRect に変更し、API を改善しました。(I1f6ff

  • Modifier.dragGestureFilter は非推奨になりました。代わりに Modifier.pointerInput { detectDragGestures (...)} を使用してください。または、単軸のドラッグには Modifier.draggable を使用します(I0ba93b/175294473

  • Ambient から CompositionLocal への名前変更に合わせて各 Ambient の名前を変更しました。AmbientFoo という名前の Ambient は、LocalFoo という名前の CompositionLocal になりました。(I2d55d

  • Selection を Foundation に移動しました。(I7892b

  • 以前 state { 0 } composable を削除して remember { mutableStateOf(0) } のような使い方を推奨するようになったのと同様、savedInstanceState { 0 } composable を削除する予定です。代わりに rememberSaveable { mutableStateOf(0) } の使用を推奨します。これにより、MutableState 内で使用されるタイプが Bundle に保存可能な場合は、自動的に保存および復元が行われるようになります。これまでカスタムのセーバー オブジェクトを渡していた場合は、stateSaver パラメータを含む rememberSaveable の新しいオーバーロードを使用する必要があります。使い方は、val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } のようになります(Ib4c26b/177338004

  • ユーザー補助機能のためのパスワード セマンティクスを追加しました(I231ce

  • ユーザー補助機能のために不確定形式の進捗状況バーをマークする ProgressBarRangeInfo.Indeterminate を追加しました(I6fe05

  • アニメーションの再生時間をナノ秒単位に統一しました(If776a

  • @ComposableContract が非推奨になり、3 つの具体的なアノテーションを使用するようになりました。

    @ComposableContract(restartable = false)@NonRestartableComposable になり、@ComposableContract(readonly = true)@ReadOnlyComposable になり、@ComposableContract(preventCapture = true)@DisallowComposableCalls になり、@ComposableContract(tracked = true) が削除されました。(I60a9d

  • emptyContent() および (@Composable () -> Unit).orEmpty() ユーティリティは非推奨になりました(パフォーマンス上の効果や価値がなくなったため)(I0484d

  • Recomposer をクローズできるようになりました。クローズされた Recomposer は、コンポジション子コルーチンが完了するまで再コンポジションを続けます。Recomposer.shutDown の名前を cancel に変更して close と対比させるようにしました。(Ib6d76

  • LazyVerticalGrid に関連する API を試験運用版としてマークしました(Ia53e3b/178519862

  • rememberSavedInstanceState() の名前を rememberSaveable() に変更して androidx.compose.runtime.saveable パッケージに移動しました。(I1366eb/177338004

  • RestorableStateHolder の名前を SaveableStateHolder に変更して androidx.compose.runtime.saveable パッケージに移動しました。内部メソッド RestorableStateProvider の名前を SaveableStateProvider に変更しました。汎用型が削除されたため、Any をキーとして渡すことができます。試験運用版のアノテーションは不要になりました。(I0902eb/174598702

  • Saver、listSaver()、mapSaver()、autoSaver を androidx.compose.runtime.savedinstancestate から androidx.compose.runtime.saveable に移動しました(I77fe6

  • アーティファクト androidx:compose:runtime:runtime-saved-instance-state の名前を androidx:compose:runtime:runtime-saveable に変更しました(I6dcac

  • UI パッケージに長く存在している非推奨の API を多数削除しました。(I2f2dc

  • compose:runtime-dispatch アーティファクトは非推奨になりました。MonotonicFrameClock は compose:runtime に、また AndroidUiDispatcher は compose:ui に含まれるようになりました。(Ib5c36

  • RounderCornerShape、CutCornerShape、CornerBasedShape のパラメータの名前を left/right から start/end に変更して、RTL 方向におけるその形状の自動ミラーリングをサポートするようにしました。自動ミラーリングが不要なときのために、AbsoluteRounderCornerShape と AbsoluteCutCornerShape を導入しました。(I61040b/152756983

  • canDrag を Modifier.scrollable から削除しました。(Id66e7b/175294473

  • Compose コンパイラ プラグインの対象となる API は、具象クラスではなくインターフェースを使用するようにリファクタリングされました。また、それらのインターフェースは、タイプ パラメータを使用しなくなりました。

    この内部変更はソースコードの互換性には影響を与えませんが、バイナリの互換性を破る変更になります。(I3b922b/169406779

  • Modifier.scaleGestureFilter を削除しました。代わりに Modifier.zoomable を使用してください。または、Modifier.pointerInput { detectMultitouchGestures { ... }} を使用します(Id5da1b/175294473

  • AnimatedValue/Float は非推奨になりました。代わりに Animatable を使用してください。(I71345b/177457083

    • CoreText と CoreTextField を公開 API から削除しました
    • 非推奨の SelectionContainer オーバーロードを削除しました(I99c19
  • 非推奨の non-suspend バージョンのスクロール関数が削除されます。前回のリリースから変更を継続し、non-suspend バージョンのスクロール関数を完全に削除しました。同じ名前の suspend 関数に変換してください。コルーチン スコープは rememberCoroutineScope() で取得できます。(I3d39cb/178169563

  • androidx.compose.foundation.layout.ConstraintLayout は非推奨になり、androidx.constraintlayout.compose.ConstraintLayout に置き換えられました。androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01 への依存関係を追加する必要があります。(I87adc

  • tapGestureFilter、doubleTapGestureFilter、longPressGestureFilter、pressIndicaitonGestureFilter は非推奨になりました。代わりに、Modifier.clickable または Modifier.pointerInput を detectTapGestures 関数とともに使用してください。(I6baf9b/175294473

  • Recomposer.current() を削除しました。[Abstract]ComposeView のデフォルトは、遅延的に作成されたウィンドウ スコープの Recomposer(ウィンドウの ViewTreeLifecycleOwner によって駆動される)になりました。ホスト ライフサイクルが停止すると、再コンポジションと withFrameNanos に基づくアニメーション ティックが一時停止します。(I38e11

  • Recomposer.runningRecomposers は、プロセスで進行中のコンポジション状態を監視するための、読み取り専用 RecomposerInfo のグローバル StateFlow を提供するようになりました。この API は、現在非推奨の Recomposer.current() よりも優先されます。(If8ebe

バージョン 1.0.0-alpha11

2021 年 1 月 28 日

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

API の変更

  • 非 suspend バージョンの scrollBy のサポートを終了し、非 suspend バージョンの scrollTo を削除しました。

    スクロールを制御しスクロールの終了を待機するには、今後は suspend 関数の使用をおすすめします。この移行の一環として、これらの関数の non-suspend バージョンはサポート終了や削除の対象となっています。(Ie9ced

  • non-suspend smoothScrollBy のサポートが終了しました。スクロールを制御しスクロールの終了を待機するには、今後は suspend 関数の使用をおすすめします。この移行の一環として、これらの機能の非 suspend バージョンはサポート終了の対象となります。(I12880

  • 画像とアイコンにコンテンツ説明パラメータを追加しました。これは、ユーザー補助サービスに説明を提供するために使用されます。(I2ac4c

  • BasicTextField で「decorationBox」という新しいパラメータを受け付けます。アイコン、プレースホルダ、ラベルなどの装飾をテキスト フィールドに追加して、ヒット ターゲット領域を広げることができます。(I16996

  • canDrag パラメータが Modifier.draggable から削除されました(Ic4becb/175294473

  • FlingConfig を受け入れる AnimatedFloat.fling が削除されました。代わりに suspend バージョンの Animatable.animateDecay を使用してください。(I4659bb/177457083

  • 次のクラスから data class を削除しました。

    • InlineTextContent
    • LocaleList
    • I605c7
  • clickable、toggleable、selectable が、コンポジションの外部でも作成できるようになりました(I0a130b/172938345b/175294473)。

  • ScrollableColumn と ScrollableRow のサポートが終了しました。スクロールが必要な大きいコンテンツの場合、ScrollableColumn は LazyColumn よりも効率性が劣ります。これは、LazyColumn で行えることが表示要素の構成、測定、描画のみであるためです。ユーザーの効率を考慮して、ScrollableColumn と ScrollableRow のサポートを終了し、代わりに LazyColumn と LazyRow の使用を奨励することにしました。この場合でも、ユーザーが遅延動作を不要と判断した場合は次のような修飾子を直接使用できます。Column(Modifier.verticalScroll(rememberScrollState()))(Ib976bb/170468083

  • LazyColumn / LazyRow / LazyVerticalGrid のスコープのための新しい items(count: Int) ファクトリ メソッド。items(items: List)itemsIndexed(items: List) が拡張関数になりました。そのため、使用するときには手動でインポートする必要があります。Array の新しい拡張オーバーロード: items(items: Array) と itemsIndexed(Array)(I803fcb/175562574

  • サポート終了となった AbsoluteArrangement が削除されました。(Iffa96b/177641870

  • 受信の最小制約を Box のコンテンツに渡すかどうかを指定するため、propagateMinConstraints パラメータを追加しました。デフォルトは false です。(I0125bb/152613457

バグの修正

  • SideEffect API と DisposableEffect API を優先して、onCommit、onDispose、onActive のサポートが終了しました。(If760e
  • WithConstraints は BoxWithConstraints として再構築され、founds.layout に移動しました。(I9420bb/173387208
  • Font / FontFamily / Typeface のファクトリ関数の変更

    • 大文字で始まるファクトリ関数を追加しました。
    • 以前の小文字で始まるファクトリ関数のサポートを終了しました。
    • 新しいファクトリ関数は、サブクラスではなく FontFamily を返します。
    • ファクトリ関数を介してのみ作成できるように、サブクラスのコンストラクタを非表示にしました。
    • Font.asFontFamily の名前を Font.toFontFamily に変更しました。
    • I42aa7
  • ComposeContentTestRule を導入しました。これは ComposeTestRule を拡張して setContentComposeTestRule から削除済み)を定義するものです。ComposeTestRule を返しアクティビティを自動的に起動しないファクトリ メソッド createEmptyComposeRule() を追加しました。これは、たとえば ActivityScenario.launch などを使用してテスト中にアクティビティを起動するときに使用します。(I9d782b/174472899

  • animateAsState が animateFooAsState になりました。Foo は、たとえば Float、Dp、Offset など、アニメーション化する変数の型を意味します。(Ie7e25

  • Density が Arrangement インターフェースのレシーバ スコープになりました。(I18aad

  • TextFieldValue が AnnotatedString を受け入れるようになりました。ただし、これは API のみの変更であり、マルチスタイル テキストの編集はまだ実装されていません。

    • EditingBuffer コンストラクタ パラメータから initial を削除しました。(I326d5
  • invalidate と compositionReference() のサポートを終了し、それぞれ currentRecomposeScope と rememberCompositionReference に置き換えました。(I583a8

  • kotlin.CharSequence から拡張するように、AnnotatedString を変更しました。そのため、length と subSequence がインスタンス関数になり、拡張関数は削除されました。(Iaf429

  • Duration と Uptime は Long ミリ秒に置き換えられます。これにより、これらのクラスに対するポインタ入力の依存関係が解消します。(Ia33b2b/175142755b/177420019

  • RememberObserver が CompositionLifecycleObserver に置き換わり、CompositionLifecycleObserver のサポートが終了しました。

    RememberObserverCompositionLifecycleObserver に置き換えました。セマンティクスを変更し、メソッドの名前を変更しました。新しい API への変更は、1 回だけ記憶されているオブジェクトに対しては機械的に行うことができます(引き続き、これがおすすめの方法です)。ただし、参照がコンポジション内で複数回記憶されている場合は、onEnter が 1 回だけ呼び出される参照ごとに onRemembered が呼び出されます。オブジェクトが WithConstraintsScaffold などのサブコンポジションで使用されていた場合、onEnter が複数回呼び出されることで単一の onEnter 呼び出しの保証の信頼性が損なわれていましたが、RememberObserver では削除されました。

    RememberObserver は、remember に渡されたコールバックから RememberObserver インスタンスが返された場合に呼び出される onAbandoned を追加しますが、コンポジションの状態には記憶されないため、onRemembered が呼び出されることはありません。これは、例外によってコンポジションが完了前に終了する場合や、コンポジションの生成状態が最新でなくなった、あるいは不要になったためにコンポジションが破棄された場合などに発生することがあります。上記の単一参照の推奨事項に沿った RememberObserver のインスタンスが外部リソースを追跡している場合、onForgottenonAbandoned の両方が、リソースが不要になったことを示します。オブジェクトが、開始された処理または onRemembered に割り当てられたリソースを追跡する場合、onRemembered が呼び出されても onAbandoned は呼び出されないため、onAbandoned は無視できます。(I02c36

  • TransformedText.transformedText の名前を TransformedText.text に変更しました。

    • TransformedText はデータクラスではなくなりました。(Ie672a
  • 次のクラスはデータクラスではなくなりました。

    • AnnotatedString
    • ParagraphStyle
    • SpanStyle
    • TextStyle
    • FontWeight
    • TextDecoration
    • TextGeometricTransform
    • TextIndex
    • TextLayoutResult
    • TextLayoutInput(Iaff99
  • 試験運用版の monotonicFrameAnimationClockOf メソッドを削除しました(Ib753fb/170708374

  • グローバル座標メソッドのサポートを終了し、ウィンドウに基づく座標メソッドを新たに作成しました。(Iee284

  • ImeAction.NoAction の代わりに ImeAction.None を使用してください。

    • ImeAction.Unspecified の代わりに ImeAction.Default を使用してください。(Ie1bcc
  • FocusRequester.createRefs は変更の可能性があるため、試験運用版としてマークされるようになりました。(I2d898b/177000821

  • SemanticsPropertyReceiver.hidden が hiddenToUser という名前に変更され、@ExperimentalComposeUiApi とマークされました。AccessibilityRangeInfo が ProgressBarRangeInfo という名前に変更されました。 stateDescriptionRange が progressBarRangeInfo という名前に変更されました。AccessibilityScrollState が ScrollAxisRange という名前に変更されました。 horizontalAccessibilityScrollState が horizontalScrollAxisRange という名前に変更されました。 VerticalAccessibilityScrollState が verticalScrollAxisRange という名前に変更されました。(Id3148

  • VisualTransformation を機能インターフェースに変更しました(I3bba4

  • テストでは TestCoroutineDispatcher を利用します。(I532b6

  • PointerInputData を削除し、PointerInputData のフィールドをすべて利用できるように PointerInputChange を変更しました。PointerInputEvent と PointerInputEventData は公開 API で使用されることがないため、内部化しました。(Ifff97b/175142755

  • TextInputService.onStateUpdated の名前を updateState に変更しました(Id4853

  • displaySize は使用しないほうがよいため、削除しました。通常は、onRoot() のサイズまたはウィンドウ サイズ以上を使用することをおすすめします。(I62db4

バージョン 1.0.0-alpha10

2021 年 1 月 13 日

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

API の変更

  • ImeOptions と KeyboardOptions がデータクラスではなくなりました(I3c898b/168684531
  • VisualTransformation API の変更点
    • OffsetMap の名前が OffsetMapping に変更されました。
    • OffsetMapping.identityOffsetMap の名前が OffsetMapping.Identity に変更されました。
    • PasswordTransformation がデータクラスではなくなりました。
    • OffsetMapping をそれ自身のファイルに移動しました。
    • I0bdf3
  • EditOperations API の変更点
    • EditOperation の名前を EditCommand に変更しました。
    • EditOperation 具象実装に Command サフィックスを追加しました。
    • EditCommand がデータクラスではなくなりました。
    • EditOperation.process 関数の名前を applyTo に変更しました。
    • InputEventListener の名前を InputEventCallback に変更しました。
    • I0a366
  • Velocity がコンポーネント部品と数学演算を持つように変更しました。(Ib0447
  • 類似する試験運用版の API アノテーションとの整合性を保つため、@ExperimentalTesting の名前を @ExperimentalTestApi に変更しました(Ia4502b/171464963
  • LazyColumn/LazyRow 用に試験運用版の stickyHeader メソッドを追加しました。(I0a81d
  • Color.useOrElse() の名前を Color.takeOrElse() に変更しました。(Ifdcf5
  • TestUiDispatcher のサポートを終了しました。代わりに Dispatchers.Main を使用してください。(Ic171fb/175385255
  • foundation の Strings.kt に切り替えを追加しました。(I4a5b7b/172366489
  • nativeClass を ui モジュールに移動し、内部化しました。equals 実装での nativeClass の使用を更新して、代わりに「is MyClass」を使用するようにしました。(I4f734)。
  • FlowRow と FlowColumn のサポートは終了しました。代わりにカスタム レイアウトを使用してください。(I09027)。
  • Modifier.focus() と Modifier.focusRequester() のサポートは終了しました。代わりに Modifier.focusModifier() と Modifier.focusReference() を使用してください。(I75a48b/175160751b/175160532b/175077829
  • Selectable の更新を SelectionManager に通知するために SelectionRegistrar.notifySelectableChange を導入しました。(I6ff30b/173215242
  • fun Dp.isFinite()val Dp.isFinite に変更しました。(I50e00
  • Constraints#satisfiedBy の名前を isSatisfiedBy に変更しました。(I9cf5c
  • Unspecified 定数を持つインライン クラスに isSpecified、isUnspecified、useOrElse を追加しました。(I93f7bb/174310811

バグの修正

  • 新しいコルーチン ベースの API Animatable が、アニメーション間の相互排他的性を保証します。新しい DecayAnimationSpec で多次元の消滅アニメーションをサポートしました。(I820f2b/168014930
  • 無効で読み取り専用のテキスト フィールドのサポートを追加しました。(I35279b/171040474b/166478534
  • animate()animateAsState() に置き換えられました。T ではなく State<T> を返します。これにより、State 値が読み取られる範囲に無効化スコープを絞り込めるため、パフォーマンスが向上します。(Ib179e
  • Semantics ロール API を追加し、クリック可能、選択可能、切り替え可能な SemanticsModifier にパラメータとして Role を追加しました。また、それを Slider が使用できるように Modifier.progressSemantics を変更しました。(I216cd
  • ネイティブ keyEvent に keyEvent.nativeKeyEvent でアクセスできるようになりました。(I87c57b/173086397

バージョン 1.0.0-alpha09

2020 年 12 月 16 日

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

API の変更

  • Scrollable インターフェースの追加

    これにより、ScrollState と LazyListState を共通のタイプとして扱い、両方のタイプにカスタム スクロールを実装できるようになります。

    また、これにより smoothScrollBy が Scrollable の拡張関数に移動し、この機能を利用するようになります。(I2153b

  • LazyVerticalGrid が追加されています。(I17267b/162213211

  • LazyColumnFor、LazyRowFor、LazyColumnForIndexed、LazyRowForIndexed のサポートを終了しました。代わりに LazyColumn と LazyRow を使用してください。(I5b48c

  • 一時停止ポインタ入力 API について、HandlePointerInputScope の名前を AwaitPointerEventScope に変更し、handlePointerInput() の名前を awaitPointerEventScope() に変更しました。(Idf0a1b/175142755

  • 現在表示されているアイテムのサイズとオフセットのリストを公開する LazyListState.layoutInfo を追加しました。(If8678b/170472532

  • ExperimentalPointerInput アノテーションを削除しました。(Ia7a24

  • TextField に InteractionState のサポートを追加しました。(I61d91

  • LazyColumn/Row に reverseLayout パラメータを追加しました。true の場合、アイテムは下から上にコンポーズされ、LazyListState.firstVisibleItemIndex == 0 は最初のアイテムが一番下にあることを示します。(I552aeb/166589935

  • verticalArrangement パラメータが LazyColumn に追加されました。horizontalArrangement パラメータが LazyRow に追加されました。Arrangement を使用すると、アイテム間にスペースを追加し、最小サイズをすべて埋めるアイテムがない場合のアイテムの配置を指定できます。(Icf79ab/170394300

  • detectMultitouchGestures が重心、パン、ズーム、回転のパラメータの組み合わせに 1 つのコールバックを使用するにようになりました。(Ie6e1c

  • ContentDrawScope を DrawScope と同じく ui-graphics モジュールに移動しました。(Iee043b/173832789

バグの修正

  • オフセット修飾子のラムダが Float ではなく IntOffset を返すようになりました。(Ic9ee5b/174137212b/174146755
  • SlotTable、SlotReader、SlotWriter を公開 API から削除しました。これらは、以前 InternalComposeAPI としてマークされていました。現在は Compose モジュールの内部にあります。

    コンポジション情報の抽出に使用するため、CompositionData と CompositionGroup が UI-Tooling API に代わって追加されました。これらは公開されていますが、UI-Tooling API が解釈する未加工の情報を提供するので、UI-Tooling API の外部での使用は想定されていません。(I31a9c

  • ShaderBrush をリファクタリングして、描画環境のサイズ設定情報を利用できる場合にシェーダー インスタンスを遅延作成できるようにしました。これを利用すると、カスタムの DrawModifier を実装しなくても、コンポーズ時にコンポーザブルの描画境界全体を占有するグラデーションを定義できます。

    グラデーション関数コンストラクタ API のサポートを終了し、代わりに Gradient オブジェクトのファクトリ メソッドを導入しました。(I511fcb/173066799

  • Modifier.focusObserver のサポートが終了しました。代わりに Modifier.onFocusChanged または Modifier.onFocusEvent を使用してください。(I30f17b/168511863b/168511484

  • Autofill API が試験運用版 API になり、オプトインが必要になりました。(I0a1ec

  • FocusRequester インスタンスを作成するための非構造化宣言を追加しました。(I35d84b/174817008

  • accessibilityLabel の名前を contentDescription に変更し、accessibilityValue の名前を stateDescription に変更しました。(I250f2

  • SelectionRegistrar にいくつかの新しい関数を導入しました。また、onPositionChange の名前を notifyPositionChange に変更しました。(Ifbaf7

  • AndroidOwner が内部に隠蔽されました。(Ibcad0b/170296980

  • InfiniteRepeatableSpec を作成するための新しい infiniteRepeatable 関数(I668e5

  • Applier インターフェースが変更され、トップダウンではなくボトムアップでツリーのビルドが簡素化されました。

    insert() メソッドの名前が insertTopDown() に変更されました。

    新しいメソッド insertBottomUp() が追加されました。

    Applier は、編集対象のツリーにノードを挿入する際に、insertTopDown() または insertBottomUp() のうちパフォーマンスが優れているほうを使用します。

    LayoutNodeView などの一部のツリーは、トップダウンよりボトムアップのほうが効率的にビルドできます。この変更の前は、ボトムアップを実装するために大量の挿入が必要でした。パフォーマンスを向上させるためにボトムアップの構築を必要とするすべての Applier にボトムアップをコピーする必要があったためです。この変更により、ApplierinsertBottomUp()insertTopDown() をオーバーライドし、それぞれボトムアップとトップダウンでツリーをビルドするようになりました。(Icbdc2

  • ラスター化されたアセット形式(PNG など)または VectorDrawable からの Painter オブジェクトの不透明な読み込みを処理できるように、painterResource API を追加しました。コンシューマは事前にアセットのタイプを判別する必要がなくなり、このメソッドを呼び出して Image コンポーザブルまたは Painter 修飾子で使用する Painter オブジェクトを取得できます。(I2c703b/173818471

  • AnnotatedString を構築できるように、buildAnnotatedString ファクトリ関数を追加しました。annotatedString の構築関数のサポートを終了しました。(Idfe0b

バージョン 1.0.0-alpha08

2020 年 12 月 2 日

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

API の変更

  • CoreTextField から maxLines パラメータを削除しました。テキスト フィールドの高さを行数で制限する場合は、代わりに BasicTextField を使用してください。(Iec002
  • ポインタの下移動を検出しないように await*TouchSlop() メソッドを変更し、名前を *OrCancellation に変更しました。また、orientationLock パラメータが不要になりました。(Ie96e1
  • Compose のガイドラインとの整合性を確認するため、コンポーズ可能なラムダ パラメータの名前と位置に対する lint チェックを追加しました。また、lint チェックおよびガイダンスに従って、後置ラムダの名前として children を使用する一部の API を content に移行しました。(Iec48e
  • foundation:foundation-text の API を foundation:foundation に移動しました。パッケージ構造は変わりません。(Id3eb2
  • 回転、ズーム、パンを検出するためのヘルパーを含む新しいマルチタッチ ジェスチャー検出器が追加されました。(Ic459d
  • 一時停止ポインタ入力 API を使用する新しいドラッグ ジェスチャー検出器が追加されました(方向のロックを含む)。(Icef25
  • VectorAsset の名前を ImageVector に変更しました。また、API 評議会のガイドラインに従い、VectorAsset を移動して名前を Builder に変更し、ImageVector の内部クラスにしました。compat 用の ImageVector.Builder にリンクする VectorAssetBuilder の型エイリアスを追加しました。(Icfdc8
  • ImageAsset と関連メソッドの名前を ImageBitmap に変更しました。(Ia2d99
  • foundation のセマンティクス プロパティを ui に移動しました。(I6f05c
  • コルーチン ベースのスクロール API を追加しました。

    LazyListState.snapToItem および LazyListState.smoothScrollBy とともに、スクロール制御用の低レベル API を追加しました。これらの API は、スクロールが終了するまで待機してから戻るスクロールを制御するための一次停止インターフェースを提供します。(Ie5642

  • singeLine パラメータを BasicTextField、TextField、OutlinedTextField に追加しました。このパラメータを true に設定すると、テキスト フィールドが 1 行になり、水平方向にスクロール可能になります。(I57004b/168187755

  • 新しい一時停止ポインタ入力を使用する、タップ、ダブルタップ、長押し、プレス操作のジェスチャー検出器が追加されました。ユーティリティもいくつか追加されたので、デベロッパーは独自のジェスチャー検出器を簡単に作成できます。(I00807

  • Modifier.focusable が foundation に追加されました。これを使用して、適切なセマンティクスとユーザー補助機能を備えたフォーカス可能な動作をコンポーネントに追加できます。(I41eb9b/152525426b/162865824

  • 以前にサポートが終了していた API が削除されました。削除された Border の代わりには、BorderStroke を使用してください。削除された Modifier.drawBorder の代わりには、Modifier.border を使用してください。削除された Modifier.gravity の代わりには、Modifier.align を使用してください。削除された Stack の代わりには、Box を使用してください。(I32c2bb/172470874

  • AbsoluteArrangement の名前が Arrangement.Absolute に変更されました。(If26f2

バグの修正

  • DrawModifier API を androidx.compose.ui パッケージから androidx.compose.ui.draw パッケージに移動しました。サポートが終了した API から現在の API への移行に役立つ型エイリアス / ヘルパー メソッドを含む DrawModifierDeprecated.kt ファイルを作成しました。(Id6044b/173834241
  • Modifier.drawLayer の名前を Modifier.graphicsLayer に変更しました。また、API 評議会のフィードバックに従って、関連するクラスを GraphicsLayer に更新しました。(I0bd29b/173834241
  • SubcomposeLayout 宣言から <T> が削除されました。現在は、タイプを指定せずにこれを使用できます。(Ib60c8
  • PointerInputData の uptime フィールドと position フィールドを null 値非許容にしました。(Id468a
  • MaterialTheme は、選択ハンドルと選択背景に正しい色を設定するようになりました。非マテリアル アプリでは、AmbientTextSelectionColors を手動で使用して、選択用の色をカスタマイズできます。(I1e6f4b/139320372b/139320907
  • Box のアライメント パラメータの名前が contentAlignment に変更されました。(I2c957
  • offsetPx 修飾子の名前が offset に変更されました。現在は、State ではなくラムダ パラメータを取得します。(Ic3021b/173594846
  • ホスト ウィンドウがフォーカスされているかどうかをチェックする WindowManager.isWindowFocused と、onWindowFocusChanged コールバックを提供する WindowFocusObserver を追加しました。(I53b2ab/170932874
  • TextInputService#onStateUpdated に resetInput パラメータを追加しました(I3e8f5b/172239032b/171860947
  • TextFieldValue API の更新
    • TextFieldValue.composition を読み取り専用にしました
    • 無効な選択範囲に対してスローされる例外を削除しました(I4a675b/172239032
  • Ambient という接尾辞を持つ Ambient のサポートが終了し、その他の Ambient と Compose API のガイドラインに沿って、Ambient という接頭辞を持つ新しいプロパティに置き換えられました。(I33440
  • Android Typeface ラッパーを追加しました。Android Typeface は、typeface 関数(typeface(Typeface.DEFAULT))によって読み込むことができます。また、typefaceFromFontFamily() の名前を typeface() に変更しました(I52ab7
  • Modifier ファクトリが、@Composable とマークされているのではなく、androidx.compose.ui.composed {} を内部的に使用していることを確認する lint チェックを追加しました。(I3c4bc
  • Modifier ファクトリ関数が Modifier の拡張として定義され、スムーズに連鎖できるようになっているかどうかを確認する lint チェックを追加しました。(I07981
  • セマンティクス引数 mergeAllDescendants の名前が mergeDescendants に変更されました。(Ib6250
  • テストの時間制御(TestAnimationClock とその使用方法)が試験運用版になりました(I6ef86b/171378521
  • 古い ui-test モジュールとそのスタブを削除しました(I3a7cb
  • 他の単位との整合性を図るため、TextUnit.Inherit の名前が TextUnit.Unspecified に変更されました。(Ifce19
  • Alignment インターフェースが更新され、機能するようになりました。(I46a07b/172311734
  • foundation:foundation-text モジュールが foundation:foundation に統合されました。(Idac0f
  • place(Offset) と placeRelative(Offset) のサポートを終了しました。代わりに int オフセットを含むオーバーロードを使用してください(I4c5e7
  • LayoutIdParentData 用の id の名前が layoutId に変更されました。Measurable.id の名前が Measurable.layoutId に変更されました。(Iadbcbb/172449643

バージョン 1.0.0-alpha07

2020 年 11 月 11 日

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

API の変更

  • Modifier.fillMaxSize[Width|Height] と同様に、LazyColumn/Row の範囲内の Modifier.fillParentMaxSize[Width|Height] で分数がサポートされるようになりました(I797e2b/166586426
  • 公開 API から KeyboardOptions.toImeOptions を削除しました。(Ic2e45
  • 基本の AmbientTextStyle、ProvideTextStyle、AmbientContentColor のサポートが終了しました。代わりに、マテリアル ライブラリにある新バージョンを使用してください。マテリアル以外のアプリの場合は、独自のコンポーネントで使用できる、独自のデザイン システム固有のテーマ設定アンビエントを代わりに作成する必要があります。(I74accb/172067770
  • foundation.Text のサポートが終了し、material.Text に置き換えられました。テーマの値を使用しない、基本的で独自性のないテキスト API については、androidx.compose.foundation.BasicText をご覧ください。(If64cb
  • maxLines を TextFields に追加しました(Ib2a5b
  • KeyboardOptions を受け入れるように TextFields を更新しました(Ida7f3
  • TextFields で使用する KeyboardOptions を追加しました(I9ca32
  • BasicTextField と並行して、デザインに独自性のないテキスト用の API として BasicText を追加しました。(I28268
  • 試験運用版 LazyDsl アノテーションを削除しました。@OptIn を追加せずに LazyColumn / LazyRow を使用できるようになりました(Idab7ab/166584730
  • BaseTextField のサポートが終了しました。代わりに BasicTextField を使用してください。(I896eb
  • CoreTextField と BaseTextField の両方に代わるものとして、BasicTextField が追加されました(Id4cea
  • サポートが終了した LazyColumnItems / LazyRowItems を削除しました(I1d8a8
  • 固有の測定値に対するサイズ変更のための、サポートが終了したコンポーザブルを削除しました。(I18537b/171811496
  • relativePaddingFrom の名前が paddingFrom に変更されました。レイアウト境界からテキスト ベースラインまでの距離を指定する際に便利なように、paddingFromBaseline 修飾子が追加されました。(I0440ab/170633813
  • matchHeightConstraintsFirst パラメータを aspectRatio 修飾子に追加しました。これを使用すると、幅の対応を試す前に高さの制限に合わせてサイズ変更する修飾子を指定できます。(Ie7c43b/155290593
  • サポートが終了した DpConstraints を削除しました。(I87884b/171702471

バグの修正

  • スケーリングが不均一なユースケースに対応するために、互いに独立した水平軸と垂直軸のスケーリング ファクタを表す ScaleFactor インライン クラスが導入されました。
    • computeScaleFactor メソッドを ContentScale に追加しました。
    • 不均一なスケーリングを実施し、src 境界を拡大してデスティネーションを完全に占有する ContentScale.FillBounds を追加しました。
    • Size パラメータを使用して ScaleFactor パラメータを計算する演算子メソッドを追加しました。
    • Ic96a6b/172291582
  • captureToBitmap を captureToImage に移動しました。(I86385
  • CoreText を @InternalTextApi としてマークしました。代わりに BasicText を使用してください。(I6aaeb
  • KeyboardOptions の名前を ImeOptions に変更しました(I82f36
  • KeyboardType と ImeAction を KeyboardOptions に移動しました(I910ce
  • CoreTextField を @InternalTextApi としてマークしました。代わりに BasicTextField を使用してください(Ie2469
  • ExperimentalSubcomposeLayoutApi アノテーションを削除しました。@OptIn を追加せずに SubcomposeLayout を使用できるようになりました(I708ad
  • ui-test-junit4 モジュールを導入しました(Ib91f8
  • ColorFilter なしで指定したアセットまたはペインタを描画する色合いとして Color.Unspecified を取り込むように、Icon API を更新しました。以前は、Color.Unspecified による色合い調整を無視しようとすると、透明色で色合い調整され、最終的に何もレンダリングされませんでした。(I049e2b/171624632
  • MeasureResult を MeasureScope の外に移動しました。(Ibf96db/171184002
  • いくつかのレイアウト関連シンボルを androidx.compose.ui から androidx.compose.layout.ui に移動しました。(I0fa98b/170475424
  • androidx.ui.test を androidx.compose.ui.test に移動しました(I9ffdb
  • FirstBaseline と LastBaseline を androidx.compose.ui.layout パッケージに移動しました(Ied2e7
  • コールバックなしの SelectionContainer を追加しました(Ibfadb
  • SelectionContainer における SelectionHandles の位置のテストを追加しました。(Ie93db
  • キーボード自動修正の IME オプションを追加しました(I57b8d

バージョン 1.0.0-alpha06

2020 年 10 月 28 日

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

API の変更

  • androidx.compose.foundation.Icon を androidx.compose.material.Icon に移動しました。マテリアル ライブラリを使用しない場合は、Painter で Image コンポーネント / Modifier.paint() を使用することもできます。(I9f622
  • interactionState を Modifier.scrollable、ScrollableColumn、LazyColumnFor に追加しました(I81566b/169509805
  • alignByBaseline が RowScope に追加され、alignWithSiblings の名前が alignBy に変更されました(I06503b/170628732
  • Box がインライン関数になりました。(Ibce0cb/155056091
  • maxLines を CoreTextField に追加しました(Ibee58b/143687793
  • softwrap を CoreTextField に追加しました。(I21a4b

バグの修正

  • コンポーザブル API がコンポジション間でデータを保持するために「remember」を内部的に利用していることをわかりやすく示すために、VectorPainter のサポートが終了し、rememberVectorPainter に置き換えられました。(Ifda43
  • ComposeTestRule で遷移が有効になりました。ComposeTestRule から、カーソルの点滅を有効にするオプションを削除しました。(If0de3
  • 単一行のキーボード オプションを CoreTextField に追加しました(I72e6d
  • Compose 全体での使用方法をわかりやすく表現するために、Radius API の名前を CornerRadius に変更しました。負のコーナー半径が 0 に固定されることを示すようにドキュメントを更新しました。(I130c7b/168762961
  • コンポーズされた修飾子でインスペクタ情報を指定する機能を追加しました(Idee08b/163494569
  • KeyboardCapitalization IME オプションを追加しました(I8ac38
  • Rtl ハンドル位置を修正しました。(I6e1e0
  • 互換性を破る変更: ポインタ イベントで変更できる必要がある唯一の値が消費データであるため、PointerInputFilter.onPointerEvent(...) からの戻り値を削除しました。PointerInputFilter.onPointerEvent(...) からデータを返すのではなく、渡された PointerEvents の消費データを変更するだけで済むようになりました。(I6acd0
  • SelectAll オプションを選択メニューに追加しました(Ief02b

バージョン 1.0.0-alpha05

2020 年 10 月 14 日

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

API の変更

  • CoreTextField でカーソル機能がサポートされるようになりました(Id23aa
  • contentColor() API と currentTextStyle() API のサポートが終了し、それぞれ AmbientContentColor アンビエントと AmbientTextStyle アンビエントに置き換えられました。他のアンビエントと同様、アンビエント プロパティで .current を使用する方法で現在の値にアクセスできるようになりました。これは、同じことを行う方法が複数にならないよう、一貫性を確保するために加えられた変更です。また、以下のように、目的を適切に表すために一部のアンビエント プロパティの名前が変更されました。

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

バグの修正

  • インライン クラス向け標識値の標準化の一環として、他のインライン クラスと整合するよう Color.Unset が Color.Unspecified という名前に変更されました(I97611b/169797763
  • コピー / 貼り付け / 切り取りのユーザー補助アクションが追加されました(I6db4f
  • TextOverflow.None が導入されました。オーバーフローが None の場合、Text はそれ以上オーバーフローを処理せず、実際のサイズを LayoutNode に報告するようになりました(I175c9b/158830170
  • Float.POSITIVE_INFINITY ではなく Float.NaN になるよう Size.Unspecified パラメータが更新されました。無制限の Sizes だけでなく Size.Unspecified もチェックするよう Painter の実装が更新されました(I95a7e
  • Paging Compose モジュールとページング統合が追加されました(Ib85da
  • null 許容型の値を受け取るよう LazyListScope が変更されました(I1765b
  • OnPositionedModifier が OnGloballyPositionedModifier という名前に、onPositioned() が onGloballyPositioned() という名前に変更されました(I587e8b/169083903
  • LazyColumn/Row のサンプルが追加されました(Idc16d
  • emptyList を使用できるよう items メソッドと itemsIndexed メソッドが修正されました(I06647
  • インスペクタ情報を指定するための DSL が追加されました(Ic9a22
  • LongPress が Text に移動されました(Iff2bc
  • Text での選択と、デモが無効になりました(Ie7e97
  • ユーザー補助のために AnnotatedString から SpannableString への変換がサポートされるようになりました(Ief907
  • PointerInputFilter.onPointerInput(...) が削除されました。代わりに PointerInputFilter.onPointerEvent(...) を使用してください(I6f04a

バージョン 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 に含まれる commit については、こちらをご覧ください

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 に含まれる commit については、こちらをご覧ください

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 に含まれる commit については、こちらをご覧ください

バグの修正

  • 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 に含まれる commit については、こちらをご覧ください

バージョン 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
  • オフセットがインライン クラスになりました。(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

  • 行と列の 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

  • WithConstraint に 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