Compose Material

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

構造

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

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

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

依存関係の宣言

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

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

Groovy

dependencies {
    implementation "androidx.compose.material:material:1.1.0-beta03"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.1.0-beta03")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

フィードバック

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

新しい問題を報告する

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

バージョン 1.0.0

バージョン 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 関数の使用をおすすめします。この移行の一環として、これらの機能の non-suspend バージョンはサポート終了の対象となっています。(I12880

  • ComposeContentTestRule を導入しました。これは ComposeTestRule を拡張して setContentComposeTestRule から削除済み)を定義するものです。ComposeTestRule を返し Activity を自動起動しないファクトリ メソッド 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

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

  • 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