Compose Material

すぐに使用できるマテリアル デザイン コンポーネントで Jetpack Compose UI を構築します。Compose の上位レベルのエントリ ポイントであり、www.material.io のガイドラインと適合するコンポーネントを提供するように設計されています。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2022 年 7 月 27 日 1.2.0 - - 1.3.0-alpha02

構造

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

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

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

依存関係の宣言

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

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

Groovy

dependencies {
    implementation "androidx.compose.material:material:1.3.0-alpha03"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0-alpha03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.3.0-alpha03")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0-alpha03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

フィードバック

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

新しい問題を報告する

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

バージョン 1.3

バージョン 1.3.0-alpha02

2022 年 7 月 27 日

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

外部からの協力

  • Scaffold の FloatingActionButton に関する AnimatedVisibility の問題を修正しました。(I3a0aeb/224005027

バージョン 1.3.0-alpha01

2022 年 6 月 29 日

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

API の変更

  • RangeSlider のパラメータ名を values から value に変更しました。(I3b79a

バグの修正

  • バッジのサンプルが更新されて、コンテンツの説明がよりわかりやすくなりました。(I10b9d

バージョン 1.2

バージョン 1.2.0

2022 年 7 月 27 日

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

バージョン 1.2.0-rc03

2022 年 6 月 29 日

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

  • 1.2.0-rc02 からの変更はありません。

バージョン 1.2.0-rc02

2022 年 6 月 22 日

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

バージョン 1.2.0-rc01

2022 年 6 月 15 日

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

API の変更

  • compose ライブラリのインターフェースが jdk8 デフォルト インターフェース メソッドを使ってビルドされるようになりました。(I5bcf1

バグの修正

  • 先頭のアイコンタブでバッジを更新し、アイコンの代わりにバッジをラベルに添付するようにしました。(I90993

バージョン 1.2.0-beta03

2022 年 6 月 1 日

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

バグの修正

  • BottomSheetScaffold がトップ アプリバーのシャドウの上に描画されるバグを修正しました。BottomSheetScaffold では、スナックバーを配置する際にシートの状態も考慮されるようになりました。スナックバーは、シートが閉じた状態だとシートと FAB の上部に配置され、開いた状態だとシートの下部に固定されています。(Ia80b5b/187771422

バージョン 1.2.0-beta02

2022 年 5 月 18 日

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

バージョン 1.2.0-beta01

2022 年 5 月 11 日

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

新機能

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

API の変更

  • OutlinedTextField に境界の破線を描画する TextFieldDefaults.BorderStroke コンポーザブルの名前を TextFieldDefaults.BorderBox に変更しました。(I5f295

バージョン 1.2.0-alpha08

2022 年 4 月 20 日

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

API の変更

  • PointerInputChange での部分的な消費(down または position)のサポートが終了しました。consume() を使用すると、変更を完全に使用できます。isConsumed を使用すると、以前にその変更が他のユーザーに使われたかどうかを確認できます。
  • PointerInputChange::copy() が常にシャローコピーを作成するようになりました。つまり、PointerInputChange のコピーのいずれか 1 つが使用されると、以降はそれらのコピーが使用されます。バインドされていない PointerInputChange を作成するには、代わりにコンストラクタを使用します。(Ie6be4b/225669674

バージョン 1.2.0-alpha07

2022 年 4 月 6 日

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

バージョン 1.2.0-alpha06

2022 年 3 月 23 日

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

API の変更

  • Surface API での変更に合わせて Clickable Card API を更新しました。(I56bcb
  • Material 2 Surface API が更新され、選択可能かつ切り替え可能なサーフェス用に、オーバーロードされた関数が追加されました。(Ifcca5

バージョン 1.2.0-alpha05

2022 年 3 月 9 日

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

API の変更

  • LazyVerticalGridLazyHorizontalGrid が安定版になりました。(I307c0
  • LazyVerticalGrid/LazyHorizontalGrid とすべての関連 API を .grid サブパッケージに移動しました。インポートを androidx.compose.foundation.lazy から androidx.compose.foundation.lazy.grid に更新してください。(I2d446b/219942574
  • WindowInsetsControllerCompat の View のみに依存する以前の変更を元に戻し、一部のウィンドウ フラグの管理に必要な Window が改めて必須になりました。適切な Window が使用されるように(View がダイアログ内にある場合など)、ViewCompat.getWindowInsetsController が非推奨になり、WindowCompat.getInsetsController に置き換えられました。(I660aeb/219572936
  • テキスト:includeFontPadding がデフォルトでオフになりました。includeFontPadding=false の結果として起きるクリッピングの問題は対処され、縦長文字ではクリッピングが起きなくなりました。(I31c84b/171394808
  • 交差軸のサイズを定義する LazyVerticalGrid API を新たに追加しました。(I17723

バージョン 1.2.0-alpha04

2022 年 2 月 23 日

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

API の変更

  • Add support for filter chipsI39a6eb/192585545
  • TextFieldDecorationBoxOutlinedTextFieldDecorationBox を追加しました。BasicTextField とともに使用すると、マテリアル デザインのテキスト フィールドに基づいてカスタム テキスト フィールドを作成できますが、カスタマイズの選択肢はさらに増えています。
  • テキスト フィールドの水平方向と垂直方向のパディングを調整する方法を提供しました。(I8c9f1b/203764564b/191543915b/189971673b/183136600b/179882597b/168003617
  • ComposableTargetComposableTargetMarkerComposableOpenTarget を追加しました。使用が想定されていない Applier を対象としてコンポーズ可能な関数を呼び出した場合について、コンパイル時のレポートが可能になります。

    ほとんどの場合、アノテーションは Compose コンパイラ プラグインによって推定されます。そのため、これらのアノテーションを直接使用することはめったにありません。推定できないケースとしては、カスタム Applier、コンポーズ可能な抽象関数(インターフェース メソッドなど)、コンポーズ可能なラムダであるフィールドまたはグローバル変数(ローカル変数とパラメータは推定される)を作成および使用する場合や、ComposeNode または関連するコンポーズ可能な関数を使用する場合が挙げられます。

    カスタム Applier の場合は、ComposeNode または ReusableComposeNode を呼び出すコンポーズ可能な関数が、関数に対して CompoableTarget アノテーションとコンポーズ可能なラムダのパラメータ型を追加する必要があります。ただし、ComposableTargetMarker を付けてアノテーションを作成し、ComposableTarget を直接使用する代わりに、そのマークされたアノテーションを使用することをおすすめします。ComposableTargetMarker でマークされたコンポーズ可能なアノテーションは、Applier パラメータとして属性クラスの完全修飾名を持つ ComposbleTarget と同等になります。ComposableTargetMarker の使用例については、anroidx.compose.ui.UiComposable をご覧ください。(I38f11

バージョン 1.2.0-alpha03

2022 年 2 月 9 日

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

バグの修正

  • チップグループのサンプルを追加しました(I97080b/192585545

バージョン 1.2.0-alpha02

2022 年 1 月 26 日

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

API の変更

  • 複雑なロジックのない既存メソッドのオーバーロードであるメソッドに、NonRestartableComposable を追加しました。これにより、呼び出し先の内部関数で繰り返される、すべてのパラメータに対するコンパイラ生成のメモ化チェック(equals)を減らすことができます。(I90490
  • アクション チップのサポートを追加しました。(I07100b/192585545

バージョン 1.2.0-alpha01

2022 年 1 月 12 日

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

依存関係の更新

  • Kotlin 1.6.10 に依存するようになりました。

外部からの協力

  • ModalBottomSheetStateisSkipHalfExpanded フラグが追加されました。これは、コンストラクタで設定することも、後で ModalBottomSheetStateisSkipHalfExpanded プロパティを true に設定して後で更新することもできます。isSkipHalfExpanded の値を更新すると、シートが再コンポーズされます。(I18b86b/186669820

バージョン 1.1

バージョン 1.1.1

2022 年 2 月 23 日

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

バグの修正

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayListNullPointerException を修正しました(aosp/1947059b/206677462
  • Android のクリップボードから読み取る際にクリップボードの内容が原因で発生するクラッシュを修正しました。(I06020b/197769306
  • LazyVerticalGrid の RTL を修正しました(aosp/1931080b/207510535

バージョン 1.1.0

2022 年 2 月 9 日

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

1.0.0 以降の重要な変更

  • Android 12 のオーバースクロール効果の安定版サポートを追加
  • タップ ターゲットのサイズ調整を改善
  • Compose 1.0 では、マテリアル ユーザー補助ガイドラインタップ ターゲットのサイズに合わせるために、マテリアル コンポーネントのレイアウト スペースが拡張されることに注意してください。たとえば、ボタンのサイズをいくら小さく設定しても、ボタンのタップ ターゲットは最小サイズの 48 x 48 dp に拡張されます。これにより、Compose Material とマテリアル デザイン コンポーネントの動作が一致し、View と Compose を混在させても動作の一貫性を保持できます。また、Compose Material コンポーネントを使用して UI を作成する際に、タップ ターゲットに関するユーザー補助の最小要件が確実に満たされます。
  • ナビゲーション レールの安定版のサポートを追加
  • 試験運用版であったいくつかの API を安定版に移行
  • 新しいバージョンの Kotlin のサポート

バージョン 1.1.0-rc03

2022 年 1 月 26 日

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

動作の変更

Compose 1.0 では、マテリアル ユーザー補助ガイドラインタップ ターゲットのサイズに合わせるために、マテリアル コンポーネントのレイアウト スペースが拡張されることに注意してください。たとえば、ボタンのサイズをいくら小さく設定しても、ボタンのタップ ターゲットは最小サイズの 48 x 48 dp に拡張されます。これにより、Compose Material とマテリアル デザイン コンポーネントの動作が一致し、View と Compose を混在させても動作の一貫性を保持できます。また、Compose Material コンポーネントを使用して UI を作成する際に、タップ ターゲットに関するユーザー補助の最小要件が確実に満たされます。

バグの修正

  • 最小タップ ターゲットの修飾子を検査する際の Layout Inspector のデバッグ情報が改善されました。(aosp/1955036

バージョン 1.1.0-rc01

2021 年 12 月 15 日

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

バグの修正

バージョン 1.1.0-beta04

2021 年 12 月 1 日

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

新機能

  • Kotlin 1.6.0 との互換性を確保するために更新しました

バージョン 1.1.0-beta03

2021 年 11 月 17 日

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

バージョン 1.1.0-beta02

2021 年 11 月 3 日

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

バグの修正

  • リップルなどの表示は、ダウンイベントで常に遅延する代わりに、Modifier.scrollable() コンテナ内にある場合にのみ遅延するようになります。(Ibefe0b/203141462

バージョン 1.1.0-beta01

2021 年 10 月 27 日

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

新機能

  • リップルでホバー状態とフォーカス状態がサポートされるようになりました。ボタンなどのコンポーネントにカーソルを合わせると、状態のオーバーレイが正しく表示されます。

バージョン 1.1.0-alpha06

2021 年 10 月 13 日

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

API の変更

  • Layout の子のないオーバーロードが追加され、効率が改善されました。(Ib0d9a
  • TextFieldDropdownMenu を含む ExposedDropdownMenuBox に基づく ExposedDropdownMenu を実装(If60b2
  • サポートが終了した dismissOnClickOutside に代わり、dismissOnOutsideClickPopupProperties に追加されました。新しいプロパティはクリック位置とアンカー境界を受け取るため、onDismissRequest を呼び出す必要があるかどうかを細かく制御できます。たとえば、アンカーでのタップに対するアンカー破棄を防ぐのに役立ちます。
    • updateAndroidWindowManagerFlagsPopupProperties に追加され、ポップアップから Android WindowManager に渡されるフラグを細かく制御できるようになりました。ラムダのパラメータは、結果的に WindowManager フラグとなる PopupProperties 値から計算されたフラグです(focusable など)。ラムダの結果は、Android WindowManager に渡される最終的なフラグです。デフォルトでは、updateAndroidWindowManagerFlags はパラメータから計算されたフラグを変更しません。この API は、ポップアップに非常に具体的な動作要件がある場合にのみ、注意して使用してください。(I6e9f9

バージョン 1.1.0-alpha05

2021 年 9 月 29 日

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

API の変更

  • 利用可能なタップ ターゲットがないマテリアル コンポーネントに、最小サイズのタップ ターゲットを追加しました。十分な大きさのタップ ターゲットを確保するためにコンポーネント間のスペースを増やしているため、タップ ターゲットのサイズが考慮されず、コンポーネントのサイズが表示されるサイズのままであることを前提とする、既存の UI が変更される可能性があります。試験運用版の LocalMinimumTouchTargetEnforcement コンポジションをローカルで使用し、階層全体でこの動作を無効にできます。ただしこれは、新しい最小サイズに対応して既存の UI を更新するまでの間、一時的なエスケープ ハッチとなることのみを目的としています。(I9b966b/149691127b/171509422
  • 試験運用版の TextFieldColorsWithIcons インターフェースを追加し、TextFieldColors を拡張して、leadingColor と trailingColor に InteractionSource を追加しました。これにより、フォーカス状態に応じて TextField の外観を変更できるようになりました。(I66923b/198402662

バージョン 1.1.0-alpha04

2021 年 9 月 15 日

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

API の変更

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

バグの修正

  • 最小限のタップ ターゲットを確保するために、クリップがクリップ領域の外までタップ ターゲット境界を拡張できるようになりました。(I43e10b/171509422
  • 厚さのパラメータとして Dp.Hairline を使用するように Divider コンポーザブルが更新され、画面密度にかかわらず単一のピクセル分割線を描画できるようになりました。(I16ffbb/196840810

バージョン 1.1.0-alpha03

2021 年 9 月 1 日

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

新機能

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

API の変更

  • クリップされた境界を取得するテストメソッドを追加しました。(I6b28e
  • ユーザー補助機能を保証するため、セマンティクスとポインタ入力で使用する最小タップ ターゲット サイズを ViewConfiguration に追加しました。(Ie861c

バージョン 1.1.0-alpha02

2021 年 8 月 18 日

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

外部からの協力

  • スワイプ オフセットがアンカーの丸め誤差内にある場合の、SwipeableState の動作を修正しました。(I03d39b/191993377

バージョン 1.1.0-alpha01

2021 年 8 月 4 日

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

API の変更

  • 送信元と送信先の長方形を使用する DrawScope#drawImage メソッドを更新し、オプションの FilterQuality パラメータを使用します。これは、ピクセルベースのアートに合わせてスケールアップする際にピクセル化されるピクセルアートに対して有用です。BitmapPainter と Image コンポーザブルについても、オプションの FilterQuality パラメータを使用するように更新しました。(Ie4fb0b/180311607
  • BadgeBox の名前を BadgedBox に変更し、Badge コンポーザブルを受け入れるようにパラメータを変更しました。BadgedBox の一般的なバッジ コンテンツである Badge コンポーネントを追加しました。(I639c6
  • NavigationRail コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I8de77

バグの修正

  • 下揃えの NavigationRail のサンプルとカタログアプリのデモを追加しました。(I3cffc
  • ダイアログがプラットフォームのサイズ調整動作に従うようになりました。この動作をオーバーライドするには、usePlatformDefaultWidth を false に設定します。(Iffaedb/192682388
  • カタログアプリにナビゲーション レールのデモを追加しました。(I04960
  • カタログアプリにバッジのデモを追加しました。(If285d

バージョン 1.0

バージョン 1.0.5

2021 年 11 月 3 日

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

バグの修正

  • derivedStateOf インスタンスをトラッキングするクラッシュを修正しました。(aosp/1792247

バージョン 1.0.4

2021 年 10 月 13 日

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

依存関係の更新

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

バージョン 1.0.3

2021 年 9 月 29 日

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

依存関係の更新

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

バージョン 1.0.2

2021 年 9 月 1 日

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

依存関係の更新

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

バージョン 1.0.0

2021 年 7 月 28 日

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

バグの修正

  • ダイアログがプラットフォームのサイズ調整動作に従うようになりました。この動作をオーバーライドするには、usePlatformDefaultWidth を false に設定します。(Iffaedb/192682388

バージョン 1.0.0-rc01

2021 年 7 月 1 日

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

API の変更

  • BadgeBox コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I5e284
  • PopupPropertiesuseDefaultMaxWidth の名前を usePlatformDefaultWidth に変更しました。(I05710
  • ダイアログが画面の幅全体を使用できるようになりました。(I83929b/190810877
  • 試験運用版の範囲スライダーの実装を追加しました。(I2f4b3

バグの修正

  • OutlinedTextField の入力値が無効であった場合、マテリアル デザイン仕様に合わせて、プレースホルダとして使用されているラベルにエラーを示す色が適用されなくなりました。これは、テキスト フィールドに入力テキストがなく、テキスト フィールドにフォーカスがない場合も同様です。この変更により、TextFieldColors.labelColor() 関数の error:Boolean パラメータの意味も変更されました。ラベルがプレースホルダとして使用されている場合、入力が無効であっても false が返されます。(I45f78

バージョン 1.0.0-beta09

2021 年 6 月 16 日

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

API の変更

  • OutlinedTextField に Shape パラメータを追加し、枠線の形状をカスタマイズできるようにしました。(I8f39eb/181322957
  • TextOverflow をインライン クラスに変更しました。(I433af

バグの修正

  • BottomDrawer、BackdropScaffold、ModalBottomSheetLayout のスクリムが表示されなくなり、Color.Unspecified が渡されます。(I2d899b/182063309

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

このリリースでは、以下の 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 アーティファクトにパッケージするルールを定義できます。それらのアーティファクトを含む APK がビルドされると、ルールが結合されます。結合されたルールは、APK に固有のコンパクト バイナリ ART プロファイルをビルドするために使用されます。ART は、アプリの特定のサブセットを事前コンパイルするために、APK がデバイスにインストールされたときにこのプロファイルを利用して、アプリのパフォーマンス(特に初回実行時)を改善できます。なお、これはデバッグ可能なアプリには影響しません。

バージョン 1.0.0-beta08

2021 年 6 月 2 日

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

新機能

API の互換性を破る動作変更

  • 互換性を破る動作変更: カードでクリックを使用するようになったため、Card(Modifier.clickable) を通じて追加されたクリックは no-op になります。カードでは、onClick を受け入れる新しい試験運用版のオーバーロードを使用してください。(Ia8744b/183775620
    • クリックやその他のクリック可能な機能(indication、interactionSource、enabled/disabled)を処理する、新しいカード オーバーロードを追加しました。Modifier.clickable では、クリックできない通常のカードを使用することはできませんでした。そのようなカードでは、リップル インジケーションがクリップされないためです。
  • 互換性を破る動作変更: サーフェスでクリックを使用するようになったため、Surface(Modifier.clickable) を通じて追加されたクリックは no-op になります。サーフェスでは、onClick を受け入れる新しい試験運用版のオーバーロードを使用してください。(I73e6cb/183775620
    • クリックやその他のクリック可能な機能(indication、interactionSource、enabled/disabled)を処理する、新しいサーフェス オーバーロードを追加しました。Modifier.clickable では、クリックできない通常のサーフェスを使用することはできませんでした。そのようなサーフェスでは、リップル インジケーションがクリップされないためです。

API の変更

  • FabPosition が、将来の拡張に対応するために列挙型からインライン クラスに変換されました。(I030fb
  • 列挙型の使用をインライン クラスにリファクタリングして、新しい列挙値の追加時に網羅的な when ステートメントの問題を回避できるようにしました。(I2b5eb
  • clickable と toggleable にタップ タイムアウトを追加して、スクロールやドラッグの際にリップルが表示されないようにしました。(Ia2704b/168524931
  • ContentDescription と Text のセマンティクス プロパティが、単一の値ではなくリストになり、連結ではなくそのまま結合できるようになりました。また、これらの変更を活用できるように改善されたテスト API も提供されています。(Ica6bfb/184825850
  • Modifier.focusModifier() のサポートが終了し、Modifier.focusTarget() に置き換えられました。(I6c860
  • FocusState 列挙型が FocusState インターフェースに置き換えられました。(Iccc1ab/187055290
  • View-backed リップルの実装が安定したため、LocalRippleNativeRendering を削除しました。(I7fab3b/188569367

バグの修正

  • Modifier.onGloballyPositioned() は、すべての修飾子を適用した後のレイアウト座標ではなく、修飾子チェーン内のこの修飾子の座標を報告するように変更されました。これにより、報告される座標が、修飾子の順序の影響を受けるようになりました。(Ieb67db/177926591
  • 既存の Compose Material カタログに README を追加しました。(If9191

バージョン 1.0.0-beta07

2021 年 5 月 18 日

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

API の変更

  • Navigation Compose でルートをサポートするための拡張メソッドを使用する必要がなくなりました。(I22bebb/172823546

バージョン 1.0.0-beta06

2021 年 5 月 5 日

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

API の変更

  • リップルが、Android デバイス内部で RippleDrawable を使用するように移行されました。それにより、リップル アニメーションが RenderThread で発生するため、UI スレッドに負荷がかかった状態(画面間の移動時など)でも滑らかになります。リップルの API サーフェスは変わりませんが、この変更による動作変更が生じる可能性があります。移行をサポートするために LocalRippleNativeRendering が追加されました。この CompositionLocal に値 false を指定すると、CompositionLocalProvider 内の以前のリップル実装にフォールバックします。この API は一時的なものであり、今後削除される予定です。そのため、この API を使用するような問題が発生した場合は、バグを報告してください。(I902f8b/168777351b/183019123
  • コレクションとそのアイテムをユーザー補助サービスに指定できる CollectionInfo と CollectionItemInfo ユーザー補助 API を追加しました(Id54efb/180479017
  • 無効な入力を含むノードをマークできるユーザー補助 API error を追加しました。(I12997b/180584804b/182142737

バグの修正

  • https://github.com/google/accompanist/pull/365 から、Compose Material のカタログ インセットの実装を更新しました。(I25dc3
  • weight(fill = false) の行と列の子が、使用可能なメイン軸のスペース全体を親に入力させる動作を示さなくなりました。(Ied94db/186012444b/184355105

バージョン 1.0.0-beta05

2021 年 4 月 21 日

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

バグの修正

  • 既存の Compose Material カタログに、コンポーネントのタイル画像、テーマ選択ツール、より具体的なメニュー URL を追加しました。(I9b58e

バージョン 1.0.0-beta04

2021 年 4 月 7 日

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

API の変更

  • API の変更: DrawerState 状態が、試験運用版の SwipeableState を拡張しなくなりました。
    • API の変更: 既存の試験運用版 BottomDrawer コンポーネントと一致するように、BottomDrawerState が試験運用版としてマークされるようになりました。(I81114b/181656094
  • SoftwareKeyboardControllerhideSoftwareKeyboardshowSoftwareKeyboard の名前を、それぞれ hide()show() に変更しました。
    • 完全な CompositionLocal インターフェースを提供して、LocalSoftwareKeyboardController を設定できるようにしました(特にテストに役立ちます)。(I579a6
  • LiveRegion ユーザー補助 API が追加されました。ノードがライブ リージョンとマークされている場合に、ユーザー補助サービスがユーザーにその変更を自動的に知らせます。(Idcf6fb/172590946

バグの修正

  • Compose Material カタログの実装を既存のモジュールに追加しました。未実装: コンポーネントのタイル画像、テーマ選択ツール(今後の変更によって追加される予定)。(Ie7a94

バージョン 1.0.0-beta03

2021 年 3 月 24 日

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

API の変更

  • DefaultMonotonicFrameClock が非推奨となりました。MonotonicFrameClock を指定せずに withFrameNanos または Recomposer.runRecomposeAndApplyChanges を呼び出すと、IllegalStateException がスローされるようになりました。(I4eb0d
  • タブにアイコンとインライン テキストを表示する新しい API LeadingIconTab を追加しました。(I23267

外部からの協力

  • [Jossi Wolf] BottomDrawer がドロワー スロットのコンテンツをラップするようになりました。親の高さが無限である場合、BottomDrawerIllegalStateException をスローしません。下部ドロワーが親の 50% 未満である場合、展開された状態になるようになりました。BottomDrawerStateModalBottomSheetLayoutState に関するドキュメントを更新しました。BottomDrawerState#isOpen が展開された状態である場合に、true を返すようになりました。(I87241

バージョン 1.0.0-beta02

2021 年 3 月 10 日

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

API の変更

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

バグの修正

  • 試験運用版 API の一般使用に対する制限を適用します。(I6aa29b/174531520
  • Row に合わせて、TopAppBar と BottomAppBar のデフォルトの水平方向の配置を Start に変更しました。(Ib2dc7
  • Compose Material カタログに、新しいモジュールとプレースホルダ UI が追加されました。現在、既存の統合テストデモにネストされています。(Idfcb3
  • androidx.compose.ui:ui が AppCompat や Fragment に依存しなくなりました。アプリで ComposeView を使用しているときに、Fragment または AppCompat を使用している場合は、AppCompat 1.3 以降または Fragment 1.3 以降を使用していることを確認してください。ComposeView に必要なライフサイクルと保存済み状態のオーナーを正しく設定するには、これらのバージョンが必要です。(I1d6fab/161814404

バージョン 1.0.0-beta01

2021 年 2 月 24 日

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

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

API の変更

  • サイズ修飾子の名前を変更しました。Modifier.width/height/size の名前を requiredWidth/requiredHeight/requiredSize に変更しました。Modifier.preferredWidth/preferredHeight/preferredSize の名前を width/height/size に変更しました。(I5b414
  • imageResource と vectorResource が、それぞれ ImageBitmap コンパニオンと ImageVector コンパニオンの拡張関数になりました。load{Image,Vector,Font}Resource 関数を削除しました。(I89130
  • 組み込み関数に合わせてサイズ変更するための修飾子が試験運用版ではなくなりました。(I15744
  • dp アサーションを削除しました(I798d2
  • すべてのテキスト フィールドから SoftwareKeyboardController コールバックが削除され、まもなく新しい API に置き換えられます。(Iae869b/168778053
  • Switch、Checkbox、RadioButton アクションのラムダが null 許容になりました。この機能を使用できるように、クリック可能行のチェックボックスのサンプルを更新しました。(If601bb/171819073
  • 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
  • CompositionLocals に AccessibilityMananger インターフェースと LocalAccessibilityMananger を追加しました。(I53520
  • サポートが終了した LayoutCoordinates メソッドを削除しました。positionInParent と boundInParent のプロパティの代わりに、関数を使用してください。(I580edb/169874631b/175142755
  • スライダーで有効 / 無効の状態がサポートされるようになりました。(I6d56bb/179793072
  • 低レベルのテキスト コンポーネント(CoreTextField など)からの入力セッション用に、新しい TextInputSession を作成しました。(I8817fb/177662148
  • AnimationEndReason.Interruped を削除しました。アニメーションが中断されると、CancellationException がスローされるようになります。(I2cbbcb/179695417
  • @ExperimentalRippleApi を削除し、RippleAlpha をインターフェースではなくプロパティを持つクラスに変更しました。(I6df7c
  • TextFieldColors インターフェースが追加され、TextField と OutlinedTextField で各種の状態を異なる色で表現できるようになりました。デフォルトの実装については、TextFieldDefaults.textFieldColors と TextFieldDefaults.outlinedTextFieldColors をご覧ください。
    • TextField と OutlinedTextField 内の isErrorValue パラメータの名前を isError に変更しました。(I831f9b/171305338b/168004067
  • selectionGroup 修飾子を追加し、ユーザー補助機能を提供するためにタブやラジオボタンのコレクションをマークできるようにしました。(Ie5c29
  • LazyListState.animateScrollToItem を追加しました

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

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

  • @ReadOnlyComposable としてマークされたコンポーザブルは、他の @ReadOnlyComposables だけを呼び出すように、コンパイル時に検証されるようになりました。(I58961

  • TargetAnimation API を削除しました。(If47d1b/177457083

  • 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

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

  • 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

  • ZoomableController.smoothScaleBy と ZoomableController.stopAnimation が suspend 関数になりました。(I7f970b/177457083

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

  • 以下の Material API 変更を加えました。

    • Top / BottomAppBar に contentPadding パラメータを追加し、デフォルトのパディングをカスタマイズできるようにしました。
    • API ガイドラインに沿って必須のパラメータがオプションのパラメータの前になるよう、BackdropScaffold 内のパラメータの順序を変更しました。
    • BottomNavigationItem の icon パラメータを selectedonClick の後ろになるよう移動しました。
    • BottomNavigationItem の alwaysShowLabels パラメータの名前を alwaysShowLabel に変更しました。
    • 一部のコンポーネントの bodyContent パラメータの名前を content のみに変更しました。
    • ButtonDefaults.buttonColors() のパラメータの順序を変更しました。パラメータの型は変更されないため、これによりコードでエラーは発生しません。名前付きパラメータを使用するか、順序を手動で更新してください。そうしないと、コードは以前と同じように動作しません。
    • darkColors()secondaryVariant パラメータを追加しました。通常、このカラーはダークテーマの secondary と同じですが、整合性とカスタマイズ性向上のために追加しました。
    • ElevationDefaults と animateElevation() はあまり使用されず、役に立っていないため、公開 API のサーフェスから削除しました。
    • SlideronValueChangeEnd の名前を onValueChangeFinished に変更し、null 可能にしました。
    • 整合性のため、Snackbartext パラメータの名前を content に変更しました。
    • DropdownMenuItemcontentPadding パラメータを追加してデフォルトのパディングをカスタマイズできるようにし、contentRowScope の拡張にしました。
    • ModalDrawerLayout の名前を ModalDrawer に変更しました。
    • BottomDrawerLayout の名前を BottomDrawer に変更しました。
    • I1cc66
  • BasicTextField のカスタマイズで、色の代わりにブラシを使用できるようになりました。(I83a36

  • imageResource と vectorResource が、それぞれ ImageBitmap コンパニオンと ImageVector コンパニオンの拡張関数になりました。load{Image,Vector,Font}Resource 関数を削除しました。(I89130

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

バグの修正

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

バージョン 1.0.0-alpha12

2021 年 2 月 10 日

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

API の変更

  • Modifier.pointerInput は、ポインタ入力検出コルーチンを新しい依存関係で再開するタイミングを示す remember キーを必要とするようになりました。(I849cd
  • BottomDrawerLayout と ListItem が @ExperimentalMaterialApi としてマークされています(Id766e
  • PaddingValues.Absolute が追加されており、PaddingValues を受け入れる API で使用できます。(Ia5f30
  • onImeActionPerformed が非推奨になりました。代わりに KeyboardActions を使用してください(If0bbdb/179071523
  • ImageBitmap や ImageVector の命名規則に合うように、ImagePainter の名前を BitmapPainter に変更し、VectorPainter と名前を揃えました。(Iba381b/174565889
  • Animatable.snapTo と Animatable.stop が suspend 関数になりました(If4288
  • ComponentActivity.setContent を androidx.activity:activity-compose モジュールの androidx.activity.compose.setContent に移動しました。(Icf416
  • destructuring と copy() メソッドを、これらをほとんど使用しないクラスから削除しました。(I26702b/178659281
  • ModalBottomSheetState の halfExpand() と expand() を内部関数に変更しました(Ic914e
  • Indication#createInstance を @Composable に変更し、LocalIndication を () -> Indication ではなく Indication を含むように変更しました。(I5eeeab/157150564
  • 今回に限り AlertDialog と DropdownMenu を Android に移動しました。基盤となるポップアップをさらに細かく設定するために、DropdownMenu に PopupProperties パラメータを追加しました。(I9c443
  • loadFontResource のサポートを終了しました。代わりに fontResource を使用してください。imageResource、loadImageResource、vectorResource、loadVectorResource が非推奨になりました。代わりに painterResource を使用してください。(I6b809
  • toggletoggleModifier のパラメータを DropdownMenu から削除し、dropdownModifierdropdownOffsetdropdownContent の名前を modifieroffsetcontent にそれぞれ変更しました。DropdownMenu が Popup に対して一貫して動作するようになりました。親レイアウトは、メニューの位置に使用されます。ほとんどの場合、toggleDropdownMenu の兄弟になるように移動して、両方を Box 内にラップできます。この API の使用方法について詳しくは、ドキュメントの最新のサンプルをご覧ください。(I884fb
  • toIntPx() の名前を roundToPx() に変更しました(I9b7e4b/173502290
  • IntBounds の名前を IntRect に変更し、API を改善しました。(I1f6ff
  • 展開と折りたたみのセマンティクス アクションを追加しました。ModalBottomSheetState に expand と halfExpand を追加しました(Ib5064
  • Modifier.dragGesFilterFilter のサポートを終了しました。代わりに 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
  • ユーザー補助機能のために不確定形式の進捗状況バーをマークする ProgressBarRangeInfo.Indeterminate を追加しました(I6fe05
  • @ComposableContract のサポートが終了し、3 つの具体的なアノテーションを使用するようになりました。

    • @ComposableContract(restartable = false)@NonRestartableComposable になりました
    • @ComposableContract(readonly = true)@ReadOnlyComposable になりました
    • @ComposableContract(preventCapture = true)@DisallowComposableCalls になりました
    • @ComposableContract(tracked = true) が削除されました。
    • I60a9d
  • emptyContent() および (@Composable () -> Unit).orEmpty() ユーティリティのサポートを終了しました(パフォーマンス上の効果や価値がなくなったため)(I0484d

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

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

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

  • Tab の text パラメータと icon パラメータ、BottomNavigationItem の label パラメータを null 許容に変更し、これらのパラメータが指定されているときと指定されていないときに、コンポーネントの動作をより適切に伝えるようにしました。この動作はコンポーネントのサイズとレイアウトに影響を与えるためです。現在、テキスト、アイコン、ラベルがないことを表す emptyContent() を渡している場合は、null を使用する必要があります。(I57ed4

  • contentColorFor 色パラメータの名前を backgroundColor に変更しました(I5bb67

  • TabDefaults のサポートを終了し、TabRowDefaults に置き換えました。(I0f189

  • ソース コンテンツの Refactored ColorFilter API の RGB 値を interface に変更して、PathEffect の実装と一致させるための ColorMatrix API を導入しました。(Ica1e8

  • AnimatedValue/Float のサポートを終了しました。代わりに Animatable を使用してください。(I71345b/177457083

  • SemanticsProperties.PaneTitle API を追加しました。(I20d5a

  • クリックされるのを防ぐために、Tab と BottomNavigationItem に有効なパラメータを追加しました。BottomNavigationItem を、その API でのレイアウト要件をより適切に表すために RowScope.BottomNavigationItem に変更しました。(Id683d

  • tapGestureFilter、doubleTapGestureFilter、longPressGestureFilter、pressIndicaitonGestureFilter のサポートを終了しました。代わりに、Modifier.clickable または Modifier.pointerInput を detectTapGestures 関数とともに使用してください。(I6baf9b/175294473

  • ShapeDirection パラメータを Shape の createOutline に追加します。これにより、レイアウト方向に対応した形状を作成できるようになります。(I57c20b/152756983

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

バグの修正

  • アイコンは、適用されるサイズ修飾子のサイズと一致するように拡大されるようになります。たとえば、Icon(.., modifier = Modifier.size(50.dp) は 50x50 dp のスペースに描画されます。(Ib2ba9b/178796190

バージョン 1.0.0-alpha11

2021 年 1 月 28 日

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

API の変更

  • 一部の Material API を @Experimental から昇格させました。(I5d20e
  • 画像とアイコンにコンテンツ説明パラメータを追加しました。これは、ユーザー補助サービスに説明を提供するために使用されます。(I2ac4c
  • Material のステートフル パラメータ インターフェースを変更して、State<T> を返す @Composable 関数を提供するようにしました。Animatable.asState() を追加しました。これにより、Animatable から State への変換が簡単にできるようになりました。また、animateElevation を、Animatable の suspend 拡張機能に変更しました。(If613c
  • Snackbar、SnackbarHost、SnackbarHostState が @ExperimentalMaterialAPI ではなくなりました。(Id1fb5
  • Typography、Shapes、TabPosition を、非データクラスに変更しました。生成されるタイポグラフィや図形の置き換えとして、Typography と Shapes のコピー機能を追加しました。(I40037
  • これまでにサポートが終了している Material API をいくつか削除しました。(Ifaa25

バグの修正

  • onCommit、onDispose、onActive のサポートを終了し、SideEffect API と DisposableEffect API に置き換えました。(If760e
  • TransitionDefinition ベースの Transition のサポートが終了しました。(I0ac57
  • updateTransition の Initial State がサポートされるようになりました。(Ifd51d
  • WithConstraints は BoxWithConstraints として再構築され、foundation.layout に移動されました。(I9420bb/173387208
  • non-suspend scrollBy のサポートを終了し、non-suspend scrollTo を削除しました。

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

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

  • ComposeContentTestRule を導入しました。これは ComposeTestRule を拡張して setContentComposeTestRule から削除済み)を定義するものです。ComposeTestRule を返しアクティビティを自動的に起動しないファクトリ メソッド createEmptyComposeRule() を追加しました。これは、たとえば ActivityScenario.launch などを使用してテスト中に Activity を起動するときに使用します。(I9d782b/174472899

  • Button と FloatingActionButton で使用するリップルは、AmbientIndation を通じて新しい Indication を提供する方法ではカスタマイズできなくなりました。このような方法は、これらのコンポーネントのカスタマイズ手段として意図されたものではありません。この措置によって、これらのコンポーネントが他の Material コンポーネントと整合するようになりました。アプリケーション全体でリップルをカスタマイズするには、RippTheme をご覧ください。(I546c5

  • animateAsState が animateFooAsState になりました。ここで Foo はアニメーション化される変数の型です(Float、Dp、Offset など)。(Ie7e25

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

  • マテリアル テキスト フィールドの幅を 280.dp 未満に設定できないバグを修正しました。(I78373

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

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

  • Surface にレイアウトの子を複数持てるようになりました。(I66a92b/144488459

  • invalidate と compositionReference() のサポートを終了し、それぞれ currentRecomposeScope と rememberCompositionReference に置き換えました。(I583a8

  • グローバル座標ではなくウィンドウ相対座標を使用するように、PopupPositionProvider を変更しました。parentGlobalBounds の名前を anchorBounds に変更し、windowGlobalBounds を windowSize: IntSize に変更しました。(I2994a

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

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

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

  • イージングが機能インターフェースに変更されました。(Ib14e5

  • 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) が拡張関数になりました。そのため、使用するときは手動でインポートする必要があります。Arrays の新しい拡張機能オーバーロード: items(items: Array)itemsIndexed(Array)I803fcb/175562574

  • 試験運用版の monoonicFrameAnimationClockOf メソッドを削除しました。(Ib753fb/170708374

  • グローバル座標メソッドを非推奨とし、ウィンドウに基づく座標メソッドを新たに作成しました。(Iee284

  • 検査が有効にされた場合にグラフィック レイヤの修飾子を追加する、Modifier.toolingGraphicsLayer を追加しました。(I315df

  • FocusRequester.createRefs は、変更の可能性があるため、試験運用版としてマークするようになりました。(I2d898b/177000821

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

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

  • ベクター グラフィックのルートに適用される色合いの解析をサポートするように、ベクター グラフィック API を更新しました。(Id9d53b/177210509

バージョン 1.0.0-alpha10

2021 年 1 月 13 日

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

API の変更

  • Velocity がコンポーネント部品と数学演算を持つように変更しました。(Ib0447
  • 類似する試験運用版の API アノテーションとの整合性を保つため、@ExperimentalTesting の名前を @ExperimentalTestApi に変更しました。(Ia4502b/171464963
  • Position の名前を DpOffset に変更し、getDistance() を削除しました。(Ib2dfd
  • Color.useOrElse() の名前を Color.takeOrElse() に変更しました。(Ifdcf5
  • foundation の Strings.kt に切り替えを追加しました。(I4a5b7b/172366489
  • FlowRow と FlowColumn のサポートは終了しました。代わりにカスタム レイアウトを使用してください。(I09027)。
  • Modifier.focus() と Modifier.focusRequester() が非推奨になりました。代わりに Modifier.focusModifier() と Modifier.focusReference() を使用してください。(I75a48b/175160751b/175160532b/175077829
  • nativeClass を ui モジュールに移動し、内部化しました。equals 実装での nativeClass の使用を更新して、代わりに「is MyClass」を使用するようにしました。(I4f734

バグの修正

  • 無効で読み取り専用のテキスト フィールドのサポートを追加しました。(I35279b/171040474b/166478534
  • animate()animateAsState() に置き換えられました。T ではなく State<T> を返します。これにより、State 値が読み取られる範囲に無効化スコープを絞り込めるため、パフォーマンスが向上します。(Ib179e
  • Semantics ロール API を追加し、クリック可能、選択可能、切り替え可能な SemanticsModifier にパラメータとして Role を追加しました。また、それを Slider が使用できるように Modifier.progressSemantics を変更しました。(I216cd

バージョン 1.0.0-alpha09

2020 年 12 月 16 日

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

API の変更

  • 手動でアニメーションをトリガー確定して Modifier.swipeable にドラッグする API を追加しました。(Iaa17ab/162408885
  • ButtonConstants などの *Constants オブジェクトの名前が変更され、たとえば ButtonDefaults など、Defaults で終わるようになりました。また、これらの新しいオブジェクトのプロパティから不要な default プレフィックスも削除しました。(Ibb915b/159982740
  • Compose は、コンポーズ可能な呼び出しを行えるプロパティ ゲッターをサポートしています。このサポートは終了しませんが、プロパティ ゲッターを @Composable として宣言する構文が変更されます。

    サポートが終了した構文では、これを行うためにプロパティ自体にアノテーションを付けていました。

        @Composable val someProperty: Int get() = ...
    

    現在の適切な構文では、これを行うためにプロパティのゲッターにアノテーションを付けます。

       val someProperty: Int @Composable get() = ...
    

    当面はどちらの構文も機能しますが、サポートが終了した構文はいずれはコンパイル エラーになります。(Id9197

  • リップル API を含む androidx.compose.material:material-ripple ライブラリを追加しました。これにより、Material ライブラリ内の他の部分を使用せずにインタラクティブ コンポーネントを構築できるようになります。rememberRippleIndication はサポートが終了し、rememberRipp に置き換えられました。(Ibdf11

バグの修正

  • オフセット修飾子のラムダが Float ではなく IntOffset を返すようになりました。(Ic9ee5b/174137212b/174146755
  • ShaderBrush をリファクタリングして、描画環境のサイズ設定情報を利用できる場合にシェーダー インスタンスを遅延作成できるようにしました。これを利用すると、カスタムの DrawModifier を実装しなくても、コンポーズ時にコンポーザブルの描画境界全体を占有するグラデーションを定義できます。

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

  • Modifier.focusObserver が非推奨になりました。代わりに Modifier.onFocusChanged または Modifier.onFocusEvent を使用してください。(I30f17b/168511863b/168511484

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

  • Dp.VectorConverter、Position.VectorConverter などを animation-core に移動し、古い VectorConveters のサポートを終了しました。(If0c4b

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

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

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

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

  • DropdownMenus の配置動作を、Material の仕様に従って若干変更しました。(I34c72b/168594123

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

  • 子孫のセマンティクスをクリアして新しいセマンティクスを設定できるように、Modifier.clearAndSetSemantics を追加しました。(I277ca

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

バージョン 1.0.0-alpha08

2020 年 12 月 2 日

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

API の変更

  • MaterialTheme は、選択ハンドルと選択背景に正しい色を設定するようになりました。非マテリアル アプリでは、AmbientTextSelectionColors を手動で使用して、選択用の色をカスタマイズできます。(I1e6f4b/139320372b/139320907
  • Compose のガイドラインとの整合性を確認するため、コンポーズ可能なラムダ パラメータの名前と位置に対する lint チェックを追加しました。また、lint チェックおよびガイダンスに従って、後置ラムダの名前として children を使用する一部の API を content に移行しました。(Iec48e
  • VectorAsset の名前を ImageVector に変更しました。また、API 評議会のガイドラインに従い、VectorAsset を移動して名前を Builder に変更し、ImageVector の内部クラスにしました。compat 用の ImageVector.Builder にリンクする VectorAssetBuilder の型エイリアスを追加しました。(Icfdc8
  • ImageAsset と関連メソッドの名前を ImageBitmap に変更しました。(Ia2d99
  • 基盤のセマンティクス プロパティを ui に移動しました(I6f05c
  • 他の API との整合性を保つため、fun RippleIndication() のサポートを終了し、rememberRippleIndication() に置き換えました。(Id8e2c
  • singeLine パラメータを BasicTextField、TextField、OutlinedTextField に追加しました。このパラメータを true に設定すると、テキスト フィールドが 1 行になり、水平方向にスクロール可能になります。(I57004b/168187755

バグの修正

  • セマンティクス アクション Dismiss を追加しました。(I2b706
  • 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
  • Modifier.scale API / Modifier.rotate API を drawLayer 用のコンビニエンス API として追加しました。
    • Modifier.drawOpacity の名前を Modifier.alpha に変更しました。
    • Modifier.drawShadow の名前を Modifier.shadow に変更しました。(I264cab/173208140
  • Box のアライメント パラメータの名前が contentAlignment に変更されました。(I2c957
  • offsetPx 修飾子の名前が offset に変更されました。現在は、State ではなくラムダ パラメータを取得します。(Ic3021b/173594846
  • SweepGradientShader API と SweepGradientBrush API を導入しました。(Ia22c1
  • コンポーズ可能な関数に Modifier パラメータの lint チェックを追加しました。この lint チェックでは、パラメータの名前、戻り値の型、デフォルト値、順序が Compose のガイドラインに従っているかどうかが確認されます。(If493b
  • TextFieldValue API の更新
    • TextFieldValue.composition を読み取り専用にしました
    • 無効な選択範囲に対してスローされる例外を削除しました。(I4a675b/172239032
  • 新しい Modifier.drawLayer() オーバーロードを追加しました。これは、新しい GraphicsLayerScope でラムダブロックを受け取ります。そこでは、状態の変化が生じたときに再コンポジションと再レイアウトをスキップできるようにレイヤ パラメータを定義します。DrawLayerModifier は、そのロジックを LayoutModifier の placeable.placeWithLayer() メソッドに移動するための準備として、内部に隠蔽されました。(I15e9fb/173030831
  • Ambient という接尾辞を持つ Ambient のサポートが終了し、その他の Ambient と Compose API のガイドラインに沿って、Ambient という接頭辞を持つ新しいプロパティに置き換えられました。(I33440
  • Modifier ファクトリが、@Composable とマークされているのではなく、androidx.compose.ui.composed {} を内部的に使用していることを確認する lint チェックを追加しました。(I3c4bc
  • セマンティクス引数 mergeAllDescendants の名前が mergeDescendants に変更されました。(Ib6250
  • テストの時間制御(TestAnimationClock とその使用方法)が試験運用版になりました(I6ef86b/171378521
  • 古い ui-test モジュールとそのスタブを削除しました。(I3a7cb
  • 他の単位との整合性を図るため、TextUnit.Inherit の名前が TextUnit.Unspecified に変更されました。(Ifce19
  • Alignment インターフェースが更新され、機能するようになりました。(I46a07b/172311734
  • LayoutIdParentData について、id が layoutId という名前に変更されました。Measurable.id が Measure.layoutId という名前に変更されました。(Iadbcbb/172449643

バージョン 1.0.0-alpha07

2020 年 11 月 11 日

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

API の変更

  • Emphasis のサポートが終了し、AmbientContentAlpha に置き換えられました。AmbientContentAlpha は、階層部分について優先されるコンテンツのアルファ版を表す、シンプルな要約です。これは、優先されるコンテンツ カラーが AmbientContentColor によって表される関係と類似しています。テキストとアイコンに、AmbientContentAlpha の現在値がデフォルトで使用されるようになりました。また、color.copy(alpha = AmbientContentAlpha.current) を手動で実施しても、コンポーネント内で同じ効果が得られます。ProvideEmphasis を使用する代わりに、AmbientContentAlpha で値を直接指定できます。また、ContentAlpha の新しいデフォルト レベルを使用して古い EmphasisLevels を置き換えることができます。(Idf03eb/159017896
  • androidx.compose.material.AmbientContentColor を追加して、androidx.compose.foundation.AmbientContentColor を置き換えました。(I84f7bb/172067770
  • androidx.compose.material.Text を追加し、テーマ設定可能な高レベルの Text コンポーネントとして androidx.compose.foundation.Text を置き換えました。テーマの色やテキスト スタイルを利用しない基本的なテキスト コンポーネントについては、BasicText を使用します。(Ie6ae0
  • maxLines を TextFields に追加しました。(Ib2a5b
  • KeyboardOptions を受け入れるように TextFields を更新しました。(Ida7f3
  • 高度オーバーレイの計算時に Surface で絶対(合計)高度が使用されるようになりました。そのため、別の Surface にネストされている Surface では、組み合わせた高度を使用してオーバーレイの描画が行われます。(I7bd2bb/171031040

バグの修正

  • captureToBitmapcaptureToImage に移動しました。(I86385
  • 基本の AmbientTextStyle、ProvideTextStyle、AmbientContentColor のサポートが終了しました。代わりに、マテリアル ライブラリにある新バージョンを使用してください。マテリアル以外のアプリの場合は、独自のコンポーネントで使用できる、独自のデザイン システム固有のテーマ設定アンビエントを代わりに作成する必要があります。(I74accb/172067770
  • foundation.Text が非推奨になり、material.Text に置き換えられました。テーマの値を使用しない、基本的で独自性のないテキスト API については、androidx.compose.foundation.BasicText をご覧ください。(If64cb
  • KeyboardOptions の名前を ImeOptions に変更しました。(I82f36
  • KeyboardType と ImeAction を KeyboardOptions に移動しました。(I910ce
  • BaseTextField のサポートが終了しました。代わりに BasicTextField を使用してください。(I896eb
  • ExperimentalSubcomposeLayoutApi アノテーションを削除しました。@OptIn を追加せずに SubcomposeLayout を使用できるようになりました(I708ad
  • FirstBaseline と LastBaseline を androidx.compose.ui.layout パッケージに移動しました。(Ied2e7
  • ColorFilter なしで指定したアセットまたはペインタを描画する色合いとして Color.Unspecified を取り込むように、Icon API を更新しました。以前は、Color.Unspecified による色合い調整を無視しようとすると、透明色で色合い調整され、最終的に何もレンダリングされませんでした。(I049e2b/171624632
  • relativePaddingFrom の名前が paddingFrom に変更されました。レイアウト境界からテキスト ベースラインまでの距離を指定する際に便利なように、paddingFromBaseline 修飾子が追加されました。(I0440ab/170633813
  • SideEffect API と DisposableEffect API との整合性を持たせるために、LaunchedTask の名前が LaunchedEffect に変更されました。ベスト プラクティスを促進するために、サブジェクト パラメータのない LaunchedEffect は許可されません。(Ifd3d4
  • MeasureResult を MeasureScope の外に移動しました。(Ibf96db/171184002
  • いくつかのレイアウト関連シンボルを androidx.compose.ui から androidx.compose.layout.ui に移動しました。(I0fa98b/170475424

バージョン 1.0.0-alpha06

2020 年 10 月 28 日

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

API の変更

  • androidx.compose.foundation.Icon を androidx.compose.material.Icon に移動しました。マテリアル ライブラリを使用しない場合は、Painter で Image コンポーネント / Modifier.paint() を使用することもできます。(I9f622
  • FloatingActionButtonElevation を追加しました。これは、さまざまな状態で FAB によって使用される高度を表すものです。デフォルトの実装については、FloatingActionButtonConstants.defaultElevation() を参照してください。(I2d4f5
  • SwitchColors インターフェースを追加しました。これは、さまざまな状態で Switch によって使用される色を表すものです。これらの色をカスタマイズするには、SwitchConstants.defaultColors を参照してください。(I93805
  • ButtonElevation インターフェースと ButtonColors インターフェースを追加しました。これは、さまざまな状態でボタンによって使用される高度と色を表すものです。これらのパラメータをカスタマイズするには、ButtonConstants のデフォルト関数を参照してください。(Ic5b7b
  • RadioButtonColors インターフェースを追加しました。これは、さまざまな状態で RadioButton によって使用される色を表すものです。各種状態で使用される色をカスタマイズするには、RadioButtonConstants.defaultColors() を参照してください。(I74130
  • CheckboxColors インターフェースを追加しました。これは、さまざまな状態でチェックボックスによって使用される色を表すものです。各種状態で使用される色をカスタマイズするには、CheckboxConstants.defaultColors() を参照してください。(I7dbdb

バグの修正

  • Material コンポーネントでは高度が zIndex として設定されなくなりました。つまり、同じ親の中では、シャドウサイズの大きい子が自動的にシャドウサイズの小さい子の上に描画されることはなくなります。そのような動作が必要な場合は、適宜 Modifier.zIndex() を手動で設定してください。(I70417b/170623932
  • コンポーザブル API がコンポジション間でデータを保持するために「remember」を内部的に利用していることをわかりやすく示すために、VectorPainter のサポートが終了し、rememberVectorPainter に置き換えられました。(Ifda43
  • ComposeTestRule で遷移が有効になりました。ComposeTestRule から、カーソルの点滅を有効にするオプションを削除しました。(If0de3
  • 単一行のキーボード オプションを CoreTextField に追加しました(I72e6d
  • Compose 全体での使用方法をわかりやすく表現するために、Radius API の名前を CornerRadius に変更しました。負のコーナー半径が 0 に固定されることを示すようにドキュメントを更新しました。(I130c7b/168762961
  • DrawScope と ContentDrawScope を、抽象クラスではなくインターフェースにリファクタリングしました
    • DrawScope の CanvasDrawScope 実装を作成しました
    • 代わりに CanvasScope を使用するように、DrawScope の実装をリファクタリングしました
    • DrawScope の依存関係をラップする DrawContext を作成しました。
    • DrawScope のサポート終了済みメソッドを削除しました。(I56f5e
  • Box がインライン関数になりました。(Ibce0cb/155056091

バージョン 1.0.0-alpha05

2020 年 10 月 14 日

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

API の変更

  • ポップアップとダイアログが親ウィンドウから FLAG_SECURE を継承するようになりました。また、これを明示的に設定するためのオプションが追加されました。(I64966b/143778148b/143778149
  • Modifier.swipeable で、状態のしきい値としてデフォルトで 56.dp が設定されるようになりました。(Iab825b/168610267
  • ScaffoldState で @Stable. drawerGesturesEnabled とマークされているすべてのスキャフォールド状態を、Scaffold 自体に移動しました。(I36645b/168297016
  • Scaffold のラムダ パラメータから null 許容型を削除しました。特定のパラメータにコンテンツがないことを表すには emptyContent() を使用できます。(I2b318b/157633857b/158551084
  • contentColor() API と currentTextStyle() API のサポートが終了し、それぞれ AmbientContentColor アンビエントと AmbientTextStyle アンビエントに置き換えられました。他のアンビエントと同様、アンビエント プロパティで .current を使用する方法で現在の値にアクセスできるようになりました。これは、同じことを行う方法が複数にならないよう、一貫性を確保するために加えられた変更です。また、以下のように、目的を適切に表すために一部のアンビエント プロパティの名前が変更されました。

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme(I37b6d
  • AmbientElevationOverlay を追加しました。これにより、ダークテーマの Surface に適用されるデフォルトの高度オーバーレイのカスタマイズや無効化が可能になります。(I5b74d

バグの修正

  • インライン クラス向け標識値の標準化の一環として、他のインライン クラスと整合するよう Color.Unset が Color.Unspecified という名前に変更されました(I97611b/169797763
  • TextOverflow.None が導入されました。オーバーフローが None の場合、Text はそれ以上オーバーフローを処理せず、実際のサイズを LayoutNode に報告するようになりました(I175c9b/158830170
  • Compose API ガイドラインに合わせて launchInComposition が LaunchedTask という名前に変更されました。(I99a8e
  • OnPositionedModifier が OnGloballyPositionedModifier という名前に、onPositioned() が onGloballyPositioned() という名前に変更されました。(I587e8b/169083903

バージョン 1.0.0-alpha04

2020 年 10 月 1 日

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

API の変更

  • ステートフル マテリアル コンポーネントで InteractionState パラメータを公開しました。これにより、状態のホイスティング、読み取りまたは制御が可能になりました。(Iaca5fb/168025711b/167164434
  • RadioButton と TriStateCheckbox の *color パラメータを変更しました。これにより、各状態で使用する色を完全にカスタマイズし、必要に応じて状態間での色のアニメーション化方法を変更できるようになりました。詳細については、CheckboxConstants と RadioButtonConstants の新しい animateDefault* 色関数をご覧ください。(I1c532
  • rememberBackdropState の名前を rememberBackdropScaffoldState に変更し、アニメーション クロックにパラメータを追加しました。BackdropScaffold のパラメータ backdropScaffoldState の名前を scaffoldState に変更しました。BackdropConstants の名前を BackdropScaffoldConstants に変更しました。(Ib644d
  • 試験運用版の BottomSheetScaffold コンポーネントを追加しました。(Ie02f0b/148996320
  • 試験運用版の ModalBottomSheetLayout コンポーネントを追加しました。(Ic209eb/148996320
  • ButtonConstants.defaultAnimatedElevation と FloatingActionButtonConstants.defaultAnimatedElevation の名前を defaultElevation に変更しました。これにより、AnimatedValue ではなく Dp 値を返すようになりました。(I5f3ed

バグの修正

  • グラフィック 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
  • foundation.Box は非推奨になりました。代わりに foundation.layout.Box を使用してください。(Ie5950b/167680279
  • Stack が Box に名前変更されました。compose.foundation.layout にある新しい Box を優先して、既存の Box は非推奨になります。Box の子が複数ある場合、新しい Box は子を互いに重ね合わせるように動作します。これは、Column と同じように動作していた以前の Box とは異なります。(I94893b/167680279
  • Box 装飾パラメータが非推奨になりました。Box に装飾やパディングを付ける場合は、代わりに修飾子を使用します。(Modifier.background、Modifier.border、Modifier.padding)(Ibae92b/167680279
  • グラフィック 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
  • レイアウト スコープのコンテンツ(RowScope の alignWithSiblings など)を静的にインポートできないようにしました。代わりに明示的なスコープ(with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) })を使用してください。(I216beb/166760797

バージョン 1.0.0-alpha03

2020 年 9 月 16 日

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

API の変更

  • BottomNavigationItemonSelect パラメータの名前を onClick に変更しました(I91925b/161809324
  • BottomNavigationItem と Tab に InteractionState パラメータが追加されたことで、この状態を掲げてさまざまな状態でコンポーネントの外観を調整できるようになりました。(Ia3e9eb/168025711
  • ボタンから disabledBackgroundColor パラメータと disabledContentColor パラメータを削除しました。代わりに、ButtonConstants 内の新しいデフォルトの色関数を使用してください。すでに contentColor または backgroundColor を明示的に設定している場合は、これらのデフォルトの関数を使用して一部またはすべてのパラメータをカスタマイズし、enabled と disabled の両方の状態に対する色を上書きしないようにしてください。(If9b52
  • Textfield の背景色で、透明度のアルファが暗黙的に適用されなくなりました。代わりに、backgroundColor パラメータで指定した色が直接適用されます。(Iecee9b/167951441
  • InnerPadding の名前が PaddingValues に変更されました。(I195f1b/167389171
  • Modifier.swipeable のパラメータ resistanceFactorAtMinresistanceFactorAtMax が単一の resistance パラメータに置き換えられました。SwipeableConstants に新しい defaultResistanceConfig メソッドが追加されました。(I54238
  • Button と FloatingActionButton にステートフルなエレベーションのサポートを追加しました。デフォルトの状態と押下状態の間でエレベーションがアニメーション化するようになりました。状態間のエレベーションをカスタマイズするには、すべてのケースで一定の Dp 値を設定する代わりに ButtonConstants.defaultAnimatedElevation()FloatingActionButtonConstants.defaultAnimatedElevation() を使用します。(I37925
  • ラベルが TextField と OutlinedTextField 内の省略可能なパラメータになりました。(I267f6b/162234081

バグの修正

  • onNodewaitForIdle などのグローバル テスト関数のサポートは終了しました。ComposeTestRule で定義されている新しい同等の関数に移行してください。(I7f45a
  • DpConstraints とそれを使用する API のサポートは終了しました。(I90cdbb/167389835
  • widthIn のパラメータ minWidth と maxWidth の名前が、min と max に変更されました。preferredWidthIn、heightIn、preferredHeightIn も同様です。(I0e5e1, b/167389544
  • スクロールの前後のセマンティクス アクションを削除しました。AccessibilityRangeInfo に steps を追加しました。(Ia47b0
  • レイアウト API の gravity の用法で、名前が align または alignment に一貫して変更されました。(I2421ab/164077038
  • 現在のグローバル メソッドのサポートが終了するため、onNode などのグローバル メソッドが ComposeTestRule に追加されました。(Ieae36
  • createAndroidComposeRuleAndroidInputDispatcherandroidx.ui.test.android から androidx.ui.test に移動しました。(Idef08b/164060572

バージョン 1.0.0-alpha02

2020 年 9 月 2 日

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

API の変更

  • 試験運用版の BackgroundsScaffold コンポーネントを追加しました。(Iad908

バグの修正

  • Matrix4 が Matrix に変更されました。vectormas パッケージの他のすべての部分が削除されました。(Ibd665b/160140398

バージョン 1.0.0-alpha01

2020 年 8 月 26 日

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

既知の問題

= マテリアル TextField 内の最初の文字を Backspace キーで削除できない(b/165956313

バージョン 0.1.0-dev

バージョン 0.1.0-dev17

2020 年 8 月 19 日

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

API の変更

  • 以前にサポートが終了した RadioGroup と RadioGroupItems が削除されました。代わりに Row と RadioBotton を使用してください。(I381b7b/163806637
  • TextField から onFocusChanged コールバックを削除しました。代わりに Modifier.focusObserver を使用してください。(I51089b/161297615
  • Modifier.drawBorder が非推奨になりました。代わりに Modifier.border を使用してください。Border データクラスは BorderStroke に置き換えられました。(I4257db/158160576
  • SwipeableState 内の一部のプロパティの名前を変更しました(swipeTarget -> targetValue、swipeProgress -> progress、swipeDirection -> direction)。SwipeableState を作成するための rememberSwipeableState 関数を追加しました。(I2fc9cb/163129614b/163132293
  • 配置と適切なキューイングに関する Snackbar のサポートを追加しました。SnackbarHostState.showSnackbar suspend 関数を介してアクセスできます。加えて次の点にもご注意ください。
    • SnackbarHost コンポーネントが追加されました。このコンポーネントは、状態に基づいて Snackbar をホストし、スナックバー間の遷移を担当します。
    • SnackbarHostState が追加されたため、スナックバーやスナックバーのホストを制御して、ScaffoldState から分離できるようになりました。この状態には scaffoldState.snackbarHostState からもアクセスできます。
    • snackbarHostState とスナックバー自体で共通のインターフェースをサポートするため、スナックバーのオーバーロードが追加されました。(I79aaa
  • IconButton に有効なパラメータを追加し、IconToggleButton でパラメータを並べ替えました。(I0a941b/161809385b/161807956
  • 文字列ベースの API を持つ ListItem のバージョンが削除されました。代わりにスロット バージョンを使用してください。(Ib8f57b/161804681
  • サポートが終了した FilledTextField コンポーネントを削除しました。代わりに TextField を使用して、塗りつぶしテキスト フィールドのマテリアル デザイン実装を取得してください。(I5e889
  • AlertDialog はボタンに FlowRow を使用するようになりました。(I00ec1b/161809319b/143682374
  • 境界を越えてスワイプしたときの抵抗量を変更するためのパラメータを Modifier.swipeable に追加しました。[min/max]Value パラメータを削除しました。(I93d98
  • LinearProgressIndicator に backgroundColor パラメータを追加し、CircularProgressIndicator から内部パディングを削除しました。新しい ProgressIndicatorConstants.DefaultProgressAnimationSpec を追加しました。このプロパティは、値間の進捗をアニメーション化するときにデフォルトの AnimationSpec として使用できます。(If38b5b/161809914b/161804677
  • Modifier.swipeable に省略可能なパラメータ velocityThreshold を追加しました。(I698ba
  • bottomBarSize、fabSize などが ScaffoldState で使用できなくなりました。代わりに、サイズを把握したいコンポーネントで Modifier.onPosition を使用してください。contentColor および Modifier パラメータが Scaffold に追加されました。(Ic6f7bb/161811485b/157174382
  • 他の API との一貫性を保つため、Tab の一部のパラメータの名前を変更し、並べ替えました。(Ia2d12b/161807532
  • TabRow を TabRow と ScrollableTabRow に分割し、TabRow から isScrollable を削除しました。また、ScrollableTabRow で edgePadding を公開します。これにより、タブの前後の空きスペースを制御できるようになります。(I583e8b/161809544
  • TabRow オブジェクトが削除され、TabConstants に置き換えられました。TabRow.TabPosition をトップレベルに移動し(TabPosition)、IndicatorContainer の名前を indicator に変更しました。更新された API の使用方法とデフォルトに関する詳細情報については、サンプルとドキュメントをご覧ください。(I54d45b/161809544
  • Modifier.swipeable のしきい値パラメータが調整されました。(タイプ T の)状態のペアを取得し、それらの間のしきい値を ThresholdConfig の形式で返します。SwipeToDismiss にパラメータ dismissThresholds を追加しました。これはラムダ (DismissDirection) -> ThresholdConfig です。(Ie1080
  • 詳細なカスタマイズができるように、スライダーの色を増やしました。(I73e64b/161810475
  • カードの色パラメータが backgroundColor に変更されました。(I01fc1b/161809546
  • Snackbar にカスタマイズ可能な背景色とコンテンツ色が導入されました。(I238f2b/161804381
  • modifier、backgroundColor、contentColor、scrimColor の各カスタマイズ パラメータが Drawers に追加されました。(I23655b/161804378
  • 明確化のため、state { ... } composable のサポートを終了し、remember { mutableStateOf(...) } の明示的な呼び出しに置き換えました。これにより、状態管理の API サーフェス全般とコンセプトの数が縮小され、クラス プロパティ委任の by mutableStateOf() パターンと一致するようになります。(Ia5727
  • ボタンのパディング パラメータが contentPadding に名前変更されました。(Id252eb/161809394
  • 試験的なマテリアル コンポーネント SwipeToDismiss を追加しました。(I129e5

バグの修正

  • onChildPositionedOnChildPositionedModifier が削除されました。 代わりに子レイアウトで onPositionedOnPositionedModifier を使用する必要があります。(I4522eb/162109766
  • SemanticsPropertyKey に mergePolicy ラムダを追加しました。これを使用して、mergeAllDescendants セマンティクスのマージに関するカスタム ポリシーを定義できます。デフォルトのポリシーでは、すでに存在する場合は親の値が使用され、それ以外の場合は子の値が使用されます。(Iaf6c4b/161979921
  • IntSize がインライン クラスになりました。(I2bf42
  • PlacementScope.placeAbsolute() の名前が PlacementScope.place() に変更され、以前の PlacementScope.place() の名前が PlacementScope.placeRelative() に変更されました。その結果、PlacementScope.place() メソッドは、右から左(RTL)へのコンテキストで、自動的に位置をミラーリングしなくなります。必要な場合は、代わりに PlacementScope.placeRelative() を使用してください。(I873acb/162916675
  • PxBounds のサポートを終了して Rect に置き換えました。PxBounds のすべての使用を更新して Rect に置き換え、移行に役立つ適切な非推奨およびアノテーションへの置き換えを追加しました。(I37038b/162627058
  • compose の命名パターンに合わせて RRect を RoundRect に名前変更しました。RRect に類似する関数コンストラクタを作成し、RRect 関数コンストラクタのサポートを終了しました。(I5d325

バージョン 0.1.0-dev16

2020 年 8 月 5 日

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

API の変更

  • Colors はインターフェースではなく最終クラスになりました。カスタム実装を拡張して提供する代わりに、カスタムテーマ オブジェクト用の新しいアンビエントを作成し、コンポーネント内で新しいアンビエントを介してテーマ オブジェクトにアクセスする必要があります。これは MaterialTheme の内部的な仕組みと同様です。(Ibae84
  • ColorPalette の名前を Colors に変更しました。これは、Material カラーシステムへのマッピングを改善し、「汎用的」なテーマ オブジェクトとしての ColorPalette と Material カラーシステムの特定の実装の混同を避けるためです。また、lightColorPalette と darkColorPalette の名前をそれぞれ lightColors と darkColors に変更しました。(I9e976b/161812111
  • BottomNavigationItem の text パラメータを label に、onSelectedonSelect に、activeColorselectedContentColor に、inactiveColorunselectedContentColor に名前変更し、ガイドラインに一致するようにパラメータの順序を更新しました。(Icb605b/161809324
  • Modifier.stateDraggable は全面的に改良され、Modifier.swipeable に名前変更されました。新しく SwipeableState クラスが導入され、DrawerState と BottomDrawerState が SwipeableState クラスを継承するようにリファクタリングされました。[Modal/Bottom]DrawerLayout が onStateChange パラメータを受け取らなくなりました。(I72332b/148023068
  • foundation.shape.corner パッケージが foundation.share にフラット化されました。(I46491b/161887429
  • ExperimentalMaterialApi アノテーションを追加しました。RippleTheme は Experimental としてマークされました。(Ic5fa0b/161784800
  • material の FilledTextField を TextField に、foundation の TextField を BaseTextField に名前変更し、シンプルで望ましい API を簡単に見つけて使用できるようにしました。(Ia6242b/155482676

バグの修正

  • OnChildPositioned のサポートが終了しました。代わりに、OnPositioned を子で使用してください。(I87f95b/162109766
  • 広範な 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 に名前変更して、未使用のメソッドを削除しました。
  • ダイアログを UI に移動しました。(I47fa6
  • SemanticsNodeInteraction.performPartialGesture を削除しました。代わりに SemanticsNodeInteraction.performGesture を使用してください(Id9b62
  • SemanticsNodeInteraction.getBoundsInRoot() の名前を SemanticsNodeInteraction.getUnclippedBoundsInRoot() に変更しました。(Icafdfb/161336532
  • 右から左(RTL)をサポートする API が更新されました。レイアウト方向の読み取りと変更に使用できる LayoutDirectionAmbient が追加されました。Modifier.rtl と Modifier.ltr が削除されました。(I080b3
  • Modifier.deternimateProgress の名前が Modifier.progressSemantics に変更されました。(I9c0b4
  • material-icons-extended を、Material.io/icons に追加された最新のアイコンで更新しました。(I4b1d3
  • transitionDefinition にはタイプ T を明示的に指定する必要があります。(I1aded
  • Modifier.plus のサポートが終了しました。代わりに Modifier.then を使用してください。then により、順序が明確化され、Modifier.padding().background() + anotherModifier と書いてチェーンを分断し可読性を下げることが防止されます。(Iedd58b/161529964
  • AndroidComposeTestRule の名前を createAndroidComposeRule に変更しました。(I70aaf
  • isFocused() および isNotFocused() SemanticsMatcher を追加しました。(I0b760
  • テストで使用すべきでない BaseGestureScope.globalBounds を削除しました。代わりに、操作したいノードのローカル座標を使用してください。(Ie9b08
  • カットアウト ディスプレイにおけるポップアップ位置を修正しました。(Idd7dd
  • Modifier.drawBackground の名前が Modifier.background に変更されました。(I13677

バージョン 0.1.0-dev15

2020 年 7 月 22 日

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

依存関係の更新

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

API の変更

  • @Model アノテーションのサポートが終了しました。代わりに state と mutableStateOf を使用してください。このサポート終了は、慎重に検討されたうえで決定されたものです。

    サポート終了の理由

    主な理由を以下に示します。

    • API に関する項目と概念について、指南が必要な内容を減らす。
    • 他の同等のツールキット(Swift UI、React、Flutter)との連携をより緊密にする。
    • サポート終了の判断を取り下げることができる。@Model はいつでも元に戻すことができます。
    • @Model の構成に関して、以下のようなまれな使用例をなくし、回答の難しい質問が出ないようにする。
    • @Model データクラス、等式、ハッシュコードなど。
    • 一部のプロパティを監視対象とし、その他のプロパティは監視対象としない方法。
    • 監視を行う際に使用する構造等価式と参照等価式の指定方法。
    • システムへの「過度な期待」を減らす。システムの能力が過信されること(リストの差分取得の方法がすでにあると考えるなど)が少なくなるようにします。
    • 監視の粒度をより直感的にする。
    • リファクタリングにより、変数をクラスのプロパティにできる可能性を高める。
    • State を個別に操作して最適化が行える可能性を高める。
    • エコシステムの他の部分との連携をより緊密にし、State が変更不能であることによる曖昧さを軽減する(変更可能な State を活用する)。

    移行メモ

    @Model の既存の使用例については、下の 2 つの方法のいずれかに、ほぼすべて容易に変換できます。以下に、2 つのプロパティを含み、コンポーズ可能な関数内で使用される @Model クラスを例として示します。

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    方法 1: State<OriginalClass> を使用してコピーを作成する

    このアプローチは、Kotlin のデータクラスを使用することで簡単に実施できます。基本的には、以前のすべての var プロパティをデータクラスの val プロパティにして、remember ではなく state を使用します。そして、データクラスの copy(...) コンビニエンス メソッドを使用して、元のクラスのコピーに state の値を割り当てます。

    このアプローチが機能するのは、State インスタンスが作成されたスコープと同じスコープで、クラスに対する変更だけが行われた場合であることに注意してください。スコープ外でクラスの変更が内部的に行われており、その監視に依存している場合は、次のアプローチを使用します。

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    方法 2: mutableStateOf とプロパティ委任を使用する

    このアプローチは、Kotlin でのプロパティ委任と mutableStateOf API を使用することで簡単に実施できます。コンポジションの外部に MutableState インスタンスを作成することが可能です。基本的には、元のクラスのすべての var プロパティを、プロパティ委任として mutableStateOf を持つ var プロパティに置き換えます。このアプローチには、クラスの使用方法の変更が一切なく、クラスの内部実装のみが変更されるという利点があります。ただし、各プロパティが個別に監視および登録されるようになるため、元の例とまったく同じ動作にはなりません。リファクタリング後に再度コンポジションが作成される際には、対象が限定されるという利点もあります。

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    I409e8b/152050010b/146362815b/146342522b/143413369b/135715219b/143263925b/139653744

  • テキスト フィールド内の onFocusChange コールバックの名前を onFocusChanged に変更しました。(Ida4a1

  • アンカー間のしきい値を指定する stateDraggable のしきい値パラメータを追加しました。これは、下部ドロワーで 56 dp のしきい値の設定に使用されていました。また、BottomDrawerLayout は別個の BottomDrawerState 列挙を使用するようになりました。(I533fa

  • サポートが終了した Modifier.ripple を削除しました。clickable はデフォルト インジケーションとしてリップルを使用するようになりました(アプリ内で MaterialTheme {} を設定している場合)。そのため、ほとんどのケースでは clickable を使用するだけでリップル インジケーションを無料で利用できます。リップルの色 / サイズ / 境界パラメータをカスタマイズする必要がある場合は、RippleIndication を手動で作成して、インジケーション パラメータとして clickable に渡します。(I663b2b/155375067

  • サポートが終了した FilledTextField composable のオーバーライドを削除しました。(I7f8f8

  • Button オブジェクト(Button 関数で使用されるデフォルトを含む)の名前を ButtonConstants に変更しました。(I7c5f7b/159687878

  • Button のコンテンツ スロットが Row として動作するようになりました(テキスト付きのアイコンが必要な場合に有用です。Button の記述方法に関するサンプルをご覧ください)。(I0ff10b/158677863

  • RadioGroup と RadioGroupItem のサポートが終了しました。設計に合わせて radioButton の適切なセットが選択されるようにするには、Modifier.selectable、Row、Column を指定して Box を使用してください。(I7f5cfb/149528535

  • Material Outlined Textfield を追加しました。(I1a518

  • androidx.ui.foundation.TextFieldValue と androidx.ui.input.EditorValue のサポートが終了しました。この型を使用する TextField、FilledTextField、CoreTextField の各 composable も非推奨になりました。代わりに androidx.ui.input.TextFieldValue を使用してください。(I4066db/155211005

  • TabRow.TabPosition には(IntPx ではなく)Dp の位置が含まれるようになりました。(I34a07b/158577776

  • IntPx の使用を Int に置き換えました。IntPxPosition を IntOffset に置き換えました。IntPxSize を IntSize に置き換えました。(Ib7b44

  • サイズ設定情報を示す際に使用するクラスの数を整理統合するため、PxSize ではなく Size クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される幅と高さを示す 2 つの float 値をパックできるようになります。(Ic0191

  • Modifier.ripple のサポートが終了しました。clickable はデフォルト インジケーションとしてリップルを使用するようになりました(アプリ内で MaterialTheme {} を設定している場合)。そのため、ほとんどのケースでは clickable を使用するだけでリップル インジケーションを無料で利用できます。リップルの色 / サイズ / 境界パラメータをカスタマイズする必要がある場合は、RippleIndication を手動で作成して、インジケーション パラメータとして clickable に渡します。(I101cdb/155375067

  • Scaffold API が改良されました。カスタマイズ性を高めるため、一部のパラメータの名前の変更や、新しいパラメータの追加が行われています。Fab、TopBar、BottomBar のサイズをクエリするためのゲッターが追加されています。(I0e7ce

  • マテリアル デザイン メニューの実装である ui-material に DropdownMenu コンポーネントを追加しました。(I9bb3d

  • SoftwareKeyboardController を使用して、ソフトウェア キーボードの表示 / 非表示を手動で切り替えられるようになりました。(Ifb9d6b/155427736

  • Modifier.indication が基盤パッケージに追加されました。これを使用して、操作可能なカスタム要素に押下、ドラッグ、その他のインジケーションを表示できます。(I8425fb/155287131

  • CanvasScope の実装を整理統合し、DrawScope と ContentDrawScope のみとしました。CanvasScope の名前を DrawScope に変更しました。DrawScope を更新して Density インターフェースを実装し、LayoutDirection を提供しました。ContentDrawScope の DrawScope サブクラスを削除しました。Painter と PainterModifier が更新され、RTL プロパティを自身で維持しなくなりました。これは DrawScope ですでに提供されているため、手動で提供する必要はありません。(I1798e

  • Emphasis.emphasize() の名前を Emphasis.applyEmphasis() に変更しました。(Iceebe

  • 無効化されたボタンが視覚面でマテリアル デザイン仕様に従うようになりました。(I47dcbb/155076924

  • FilledTextField が IME アクション、視覚的変換、キーボード タイプをサポートするようになりました。(I1f9cfb/155075201

  • ストローク サイズをカスタマイズできるように、CircularProgressIndicator に strokeWidth パラメータが追加されました。LinearProgressIndicator のストローク サイズ(高さ)を変更するには、Modifier.preferredHeight() などのサイズ修飾子を使用します。(Icea16b/154919081

  • ストローク サイズをカスタマイズできるように、CircularProgressIndicator に strokeWidth パラメータが追加されました。LinearProgressIndicator のストローク サイズ(高さ)を変更するには、Modifier.preferredHeight() などのサイズ修飾子を使用します。(Icea16b/154919081

  • FilledTextField の末尾のアイコンと先頭のアイコンを操作し、エラー状態を処理するスロット API を追加しました。(Ic12e0

  • FAB と拡張 FAB のデフォルトの色が MaterialTheme.colors.secondary に変更されました。(I3b9b9b/154118816

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

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

  • スライダーがステートレスになりました。他のコントロールと同様に、ユーザー自身が状態を渡して更新する必要があります。(Ia00aa

  • StaticDrawer が削除されました。必要な場合は、代わりにマテリアル仕様の幅の Box を使用してください。(I244a7

  • FilledTextField のマテリアル デザイン実装を追加しました。(Ic75cd

  • 修飾子パラメータを ListItem に追加し、後置ラムダ本体がもっと上に表示されるようにパラメータを並べ替えました。(I66e21

  • defaultFontFamily コンストラクタ パラメータを Typography に追加しました。これにより、ファミリー セットのない指定された TextStyle で使用されるデフォルトのフォント ファミリーを指定できます。(I89d07

  • API サーフェスから Material Data Table を一時的に削除しました。(Iaea61

  • Divider composable のパラメータ名を変更しました。(Ic4373

  • 多くの Material コンポーネントで「子」の後置パラメータの名前が変更されました。それらを名前付きパラメータで使用している場合は、新しい名前を使用してください(または単に後置ラムダ構文を使用してください)。(Ia6d19

  • MaterialTheme.emphasisLevels を削除しました。強調レベルを取得するには、代わりに EmphasisAmbient.current を使用してください。(Ib5e40

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

  • MaterialTheme.colors()、MaterialTheme.typography() などの MaterialTheme API を関数ではなくプロパティに変更しました。既存の呼び出しから、かっこを削除してください(動作の変更はありません)。(I3565a

  • FloatingActionButton API をリファクタリングして、プリミティブではなくコンポーズ可能なラムダを受け入れるようにしました。使用方法については、更新済みのサンプルをご覧ください。(I00622

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

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

  • Surface と Card が androidx.ui.material.surface から androidx.ui.material に移動されました。(I88a6db/150863888

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

  • Image の名前を ImageAsset に変更し、レイアウトへの参加とコンテンツの描画に使用される Image データと今後使用される Image composable を区別しやすくしました。android.graphics.Bitmap に対する拡張メソッド Bitmap.asImageAsset() を作成しました。これにより、従来の Android アプリ開発と Compose フレームワークを組み合わせるために役立つ ImageAsset のインスタンスを作成できます。(Id5bbd

  • String パラメータを使用する Snackbar API を削除し、コンポーズ可能なラムダを受け入れるオーバーロードを使用するようにしました。使用方法については、更新済みのサンプルをご覧ください。(I55f80

  • texticon のラムダを受け入れるように Tab API をリファクタリングしました。(Ia057e

  • BottomNavigation コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I731a0

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

  • ButtonStyle を別の関数に置き換え、テキスト(文字列)オーバーロードを削除しました。使用方法については、更新済みのサンプルをご覧ください。(If63abb/146478620b/146482131

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

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

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

  • アンビエント API を大幅に変更しました。詳細については、ログと Ambient<T> のドキュメントをご覧ください。(I4c7eeb/143769776

  • Scaffold マテリアル コンポーネントが追加されました。Scaffold は、基本的なマテリアル デザイン視覚レイアウト構造を実装します。(I7731b

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

バグの修正

  • FocusModifier が非推奨になり、Modifier.focus、Modifier.focusRequester、Modifier.focusObserver に置き換えられました。FocusState と FocusDetailedState のサポートが終了し、FocusState2 に置き換えられました。(I46919b/160822875b/160922136
  • 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
  • runOnIdleCompose の名前が runOnIdle に変更されました。(I83607
  • 単一値のセマンティクス プロパティで呼び出しスタイルが使用されるようになりました。たとえば、「semantics { hidden = true }」は、現在は「semantics { hidden() }」として記述されます。(Ic1afdb/145951226b/145955412
  • いくつかのテスト API の名前がより直感的にわかりやすいものになりました。findXYZ API という名前はすべて onNodeXYZ に変更されました。doXYZ API という名前はすべて performXYZ に変更されました。(I7f164
  • Transition API が変更され、子に TransitionState を渡すのでなく、TransitionState を返すようになりました。これにより、この API と animate() API の一貫性が向上します。(I24e38
  • レイアウトからの整数ピクセル境界を表す IntBounds ユニットクラスが追加されました。PopupPositionProvider の API が更新され、これを使用するようになりました。(I0d8d0b/159596546
  • 新しいオプションのフラグ useUnmergedTree がテスト ファインダーに追加されました。(I2ce48
  • 古いサイズテスト API を削除しました。(Iba0a0
  • NativeShader Expect クラスをラップする Shader インライン クラスを削除しました。NativeShader の名前を Shader に変更しました。ラップされた Shader インライン クラスは、API サーフェスに価値のある機能を何も付加しておらず、しかもインライン クラスでした。そのため、NativeShader クラスを直接使用してください。(I25e4d
  • ポップアップ、ダイアログ、メニューがコンテキストに応じた MaterialTheme を継承するようになりました。(Ia3665b/156527485
  • Material の DropdownMenu がスクロール可能になりました。(Ide699
  • Layout() 関数の測定ブロックからレイアウト方向のパラメータを削除しました。ただし、測定スコープ オブジェクトを介してコールバック内でレイアウト方向を使用できます。(Ic7d9d
  • 静的アニメーション仕様のコンセプトを明確化するため、最上位レベルの API で AnimationBuilder ではなく AnimationSpec を使用するようになりました。tween や spring などの AnimationSpec の作成に関するラムダ要件を削除することにより、遷移 DSL を改善しました。代わりに、それらはコンストラクタのパラメータを直接受け取ります。AnimationSpec の使いやすさを全面的に改善し、ビルダーに依存するのではなくコンストラクタを利用するようにしました。KeyFrames と Tween の期間と遅延を Int に変更しました。これにより、(Long と Int の両方をサポートするための)不要な型キャストとメソッドのオーバーロードがなくなります。(Ica0b4
  • enabled が false に設定されている場合、スイッチが無効な状態として表示されるようになりました。(If4624b/155941869b/159331694
  • Modifier.testTag との混同を避けるため、Modifier.tag の名前が Modifier.layoutId に変更されました。(I995f0
  • Placeable#get(AlignmentLine) から返されるアライメント ラインの Int 位置が非 null になりました。クエリされたアライメント ラインが見つからなかった場合は、AlignmentLine.Unspecified が返されます。(I896c5b/158134875
  • Radius クラスをインライン クラスにリファクタリングしました。コンパニオン作成メソッドを削除し、関数コンストラクタに置き換えました。この関数コンストラクタは、デフォルト パラメータで、y 軸沿いの半径が、必須の x 軸半径パラメータの半径と一致するようになっています。

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

  • 位置情報を示す際に使用するクラスの数を整理統合するため、PxPosition ではなく Offset クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される x オフセットと y オフセットを示す 2 つの float 値をパックできるようになります。(I3ad98

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

  • Toggleable コンポーネントのサポートが終了しました。代わりに Modifier.toggleable を使用してください。(I35220b/157642842

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

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

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

  • DropdownMenuItems に対して onClick が呼び出されない問題を解決しました。(I3998bb/157673259

  • MutuallyExclusiveSetItem のサポートが終了しました。代わりに Modifier.selectable を使用してください。(I02b47b/157642842

  • TestTag が非推奨になりました。代わりに Modifier.testTag を使用してください。(If5110b/157173105

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

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

  • VerticalScroller は、すぐに利用可能な Column を提供するようになりました。HorizontalScroller は、すぐに利用可能な Row を提供するようになりました。(Ieca5db/157020670

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

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

  • DrawLayer 修飾子 API が変更されました。outlineShape の名前が shape に変更され、RectangleShape のデフォルト値を持つようになり、null 値非許容型になりました。clipToOutline の名前が clip に変更されました。clipToBounds は、RectangleShape で clip == true を設定するのと同じであるため、削除されました。(I7ef11b/155075735

  • キャンバスを公開するハイレベルの Compose API を更新して、代わりに CanvasScope を公開するようにしました。これにより、ユーザーが独自の Paint オブジェクトを維持管理する必要がなくなります。引き続きキャンバスの利用が必要なユーザーは、drawCanvas 拡張メソッドを使用できます。このメソッドにより、対象のキャンバスに対して Draw コマンドを実行するコールバックが行われます。(I80afd

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

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

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

  • FocusManagerAmbient が削除されました。フォーカスを取得するには、FocusModifier.requestFocus を使用してください。(Ic4826

  • Canvas オブジェクトをラップしてステートレスの宣言型描画 API サーフェスを公開する CanvasScope API を作成しました。変換は固有のレシーバ スコープ内に含まれます。また、サイズ設定情報のスコープは対応するインセット境界に設定されます。描画オペレーションを構成するためにコンシューマが独自の Paint 状態オブジェクトを維持する必要はありません。

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

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

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

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

  • サポートが終了した LayoutModifier インターフェースを削除しました。(I2a9d6

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

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

  • 同じ親レイアウト内の子の描画順序を制御するため、新しい Modifier.zIndex() が追加されました。DrawLayerModifier の elevation プロパティは名前が shadowElevation に変更され、描画順序を制御しなくなりました。DrawShadow のパラメータの順序が変更され、最初のパラメータは elevation、2 番目のパラメータは shape(デフォルトは RectangleShape)になりました。(I20150b/152417501

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

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

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

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

  • ImageAsset からのピクセル情報のクエリをサポートする PixelMap API を作成しました。(I69ad6

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

  • 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

  • DrawModifier API の改善:

    • draw() のレシーバ スコープを ContentDrawScope にしました。
    • draw() のパラメータをすべて削除しました。
    • DrawScope に以前の CanvasScope と同じインターフェースを設定しました。
    • ContentDrawScope に drawContent() メソッドを追加しました。(Ibacedb/152919067
  • runOnIdleComposerunOnUiThread が ComposeTestRule のメソッドではなくグローバル関数になりました。(Icbe8f

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

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

  • ColoredRect のサポートが終了しました。代わりに Box(Modifier.preferredSize(width, height).drawBackground(color)) を使用してください。(I499fab/152753731

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

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

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

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

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

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

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

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

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

  • RepaintBoundary を削除して DrawLayerModifier に置き換えました。(I00aa4

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

  • コンポーズ可能な関数 Opacity が drawOpaity 修飾子に置き換えられました。(I5fb62

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

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

  • レイアウトに RenderNode を追加できる修飾子 LayerModifier を追加しました。クリッピング、不透明度、回転、スケーリング、シャドウを設定できます。これにより、RepaintBoundary が置き換えられます。(I7100db/150774014

  • 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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Constraints の API サーフェスの改善。(I0fd15