Compose Material
androidx.compose.material
androidx.compose.material.icons
(すべての Compose パッケージについては、API リファレンス ドキュメントをご覧ください)
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 11 月 13 日 | 1.7.5 | - | - | 1.8.0-alpha06 |
構造
Compose は、androidx
内の 7 つの Maven Group ID を組み合わせたものです。各グループにはそれぞれの目的に応じて Compose の機能のサブセットが含まれており、それぞれに固有のリリースノートがあります。
次の表に、各グループの説明と、それぞれのリリースノートのリンクを示します。
グループ | 説明 |
---|---|
compose.animation | Jetpack 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.runtime | Compose のプログラミング モデルと状態管理の基本ビルディング ブロックと、Compose コンパイラ プラグインがターゲットとするコアランタイム。 |
compose.ui | レイアウト、描画、入力などのデバイス操作に必要な Compose UI の基本コンポーネント。 |
依存関係の宣言
Compose への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.8
バージョン 1.8.0-alpha06
2024 年 11 月 13 日
androidx.compose.material:material-*:1.8.0-alpha06
がリリースされました。バージョン 1.8.0-alpha06 に含まれる commit はこちらをご覧ください。
バージョン 1.8.0-alpha05
2024 年 10 月 30 日
androidx.compose.material:material-*:1.8.0-alpha05
がリリースされました。バージョン 1.8.0-alpha05 には、これらの commit が含まれています。
バグの修正
contentPadding
が変更されたときに常に body コンテンツを再コンポーズしないように、Scaffold のcontentPadding
の動作を最適化しました。(I8c8e2、b/373904168)- コントロール キーが押されたときに、マテリアル スライダーの値を変更します。(I1c442)
バージョン 1.8.0-alpha04
2024 年 10 月 16 日
androidx.compose.material:material-*:1.8.0-alpha04
がリリースされました。バージョン 1.8.0-alpha04 には、これらの commit が含まれています。
API の変更
TextFields
からreadOnly
を削除し、安定した基盤バージョンに固定しました。(I3aaba)
バグの修正
- Android S 以降で、クリックで展開されるカードなど、展開するコンポーネントでのリップルのサポートを追加しました。以前は、波紋は新しいサイズまで広がりませんでしたが、新しい境界まで広がるようになりました。(If509a、b/183019123)
バージョン 1.8.0-alpha02
2024 年 9 月 18 日
androidx.compose.material:material-*:1.8.0-alpha02
がリリースされました。バージョン 1.8.0-alpha02 には、これらの commit が含まれています。
バージョン 1.8.0-alpha01
2024 年 9 月 4 日
androidx.compose.material:material-*:1.8.0-alpha01
がリリースされました。バージョン 1.8.0-alpha01 には、これらの commit が含まれています。
API の変更
- セーフな引数を使用してボトムシートを作成する新しい
NavGraphBuilder.bottomSheet
ビルダーを追加しました。(I28589、I777db、b/351858980)
バージョン 1.7
バージョン 1.7.5
2024 年 10 月 30 日
androidx.compose.material:material-*:1.7.5
がリリースされました。バージョン 1.7.5 には、これらの commit が含まれています。
バージョン 1.7.4
2024 年 10 月 16 日
androidx.compose.material:material-*:1.7.4
がリリースされました。バージョン 1.7.4 には、これらの commit が含まれています。
バージョン 1.7.2
2024 年 9 月 18 日
androidx.compose.material:material-*:1.7.2
がリリースされました。バージョン 1.7.2 には、これらの commit が含まれています。
バージョン 1.7.1
2024 年 9 月 10 日
- Android アーティファクトに変更はありません。
-desktop
アーティファクトが削除され、-jvmStubs
アーティファクトと-linuxx64Stubs
アーティファクトが追加されました。これらのターゲットはいずれも使用されることを想定しておらず、Jetbrains Compose の開発を支援するためのプレースホルダです。
バージョン 1.7.0
2024 年 9 月 4 日
androidx.compose.material:material-*:1.7.0
がリリースされました。バージョン 1.7.0 に含まれる commit は次のとおりです。
1.6.0 以降の重要な変更
- Material コンポーネントは、新しいリップル API を使用するように移行され、
RippleTheme
をクエリしなくなりました。 - 以前は
MutableInteractionSource
を受け入れてデフォルトでremember { MutableInteractionSource() }
になっていたマテリアル コンポーネントが、null 許容のMutableInteractionSource
を受け入れてデフォルトで null になるようになりました。ホイスティングせずにMutableInteractionSource
を使用する場合は、null を渡す必要があります。これにより、一部のコンポーネントは、必要な場合にのみインスタンスを遅延作成できるため、パフォーマンスが向上します。独自のコンポーネントでも同様の変更を行うことをおすすめします。 BottomDrawer
、ModalBottomSheet
、BackdropScaffold
、標準の Bottomsheet が安定版 API に昇格しました。
バージョン 1.7.0-rc01
2024 年 8 月 21 日
androidx.compose.material:material-*:1.7.0-rc01
がリリースされました。バージョン 1.7.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.7.0-beta07
2024 年 8 月 7 日
androidx.compose.material:material-*:1.7.0-beta07
がリリースされました。バージョン 1.7.0-beta07 に含まれる commit はこちらをご覧ください。
バージョン 1.7.0-beta06
2024 年 7 月 24 日
androidx.compose.material:material-*:1.7.0-beta06
がリリースされました。バージョン 1.7.0-beta06 に含まれる commit はこちらをご覧ください。
バージョン 1.7.0-beta05
2024 年 7 月 10 日
androidx.compose.material:material-*:1.7.0-beta05
がリリースされました。バージョン 1.7.0-beta05 に含まれる commit はこちらをご覧ください。
バージョン 1.7.0-beta04
2024 年 6 月 26 日
androidx.compose.material:material-*:1.7.0-beta04
がリリースされました。バージョン 1.7.0-beta04 に含まれる commit はこちらをご覧ください。
バージョン 1.7.0-beta03
2024 年 6 月 12 日
androidx.compose.material:material-*:1.7.0-beta03
がリリースされました。バージョン 1.7.0-beta03 に含まれる commit はこちらをご覧ください。
バージョン 1.7.0-beta02
2024 年 5 月 29 日
androidx.compose.material:material-*:1.7.0-beta02
がリリースされました。バージョン 1.7.0-beta02 に含まれる commit はこちらをご覧ください。
API の変更
- リンクのスタイル設定用の API を更新しました。
TextLinkStyles
をTextStyle
に移動し、マテリアルからTextDefaults
を削除しました。(I5477b)
バージョン 1.7.0-beta01
2024 年 5 月 14 日
androidx.compose.material:material-*:1.7.0-beta01
がリリースされました。バージョン 1.7.0-beta01 には、これらの commit が含まれています。
API の変更
- Text でマテリアル テーマのリンクを取得する API を更新しました。具体的には、テーマ設定された
LinkAnnotations
の作成と、テーマ設定されたリンクを含む HTML の解析を行うメソッドをTextDefaults
から削除しました。代わりに、Text コンポーザブルにパラメータとしてリンクのスタイルを設定できるTextLinkStyles
クラスを追加しました。(I31b93)
バージョン 1.7.0-alpha08
2024 年 5 月 1 日
androidx.compose.material:material-*:1.7.0-alpha08
がリリースされました。バージョン 1.7.0-alpha08 には、これらの commit が含まれています。
API の変更
backgroundColor
がTextFieldDecorationBox
とOutlinedTextFieldDecorationBox
に適用されない問題を修正しました。装飾ボックスでshape
パラメータが使用可能になりました。(I371c2、b/307694651)RippleConfiguration#isEnabled
が削除され、LocalRippleConfiguration
が null 可能になりました。リップルを無効にするには、isEnabled = false
でRippleConfiguration
を指定する代わりに、LocalRippleConfiguration
にnull
を指定します。(I22725)- テキストリンクには、通常のスタイル、ホバー状態、フォーカス状態に加えて、押された状態のスタイル オプションがあります。
TextDefaults
メソッドには、これをサポートするpressedStyle
引数があります。(Ic473f、b/139312671)
バグの修正
- ラベルの
OutlinedTextField
上部パディングがシステム フォントサイズを考慮するようになりました。(Idc781)
バージョン 1.7.0-alpha07
2024 年 4 月 17 日
androidx.compose.material:material-*:1.7.0-alpha07
がリリースされました。バージョン 1.7.0-alpha07 に含まれる commit はこちらをご覧ください。
API の変更
- テキストリンクに、通常のスタイル設定、ホバー状態、フォーカス状態に加えて、押下状態のスタイル設定オプションが追加されました。(I5f864、b/139312671)
LinkAnnotation
を構築し、リンクにMaterialTheme
を適用する HTML タグ付き文字列を解析するメソッドを含むTextDefaults
オブジェクトを追加しました。(I98532、b/139312671)
バージョン 1.7.0-alpha06
2024 年 4 月 3 日
androidx.compose.material:material-*:1.7.0-alpha06
がリリースされました。バージョン 1.7.0-alpha06 に含まれる commit はこちらをご覧ください。
発表
androidx.compose.material
では、この Maven グループ内のすべてのアーティファクトで同じバージョンを使用する必要がなくなりました。Compose 基盤ライブラリ(Ie5fba)のバージョンを組み合わせて使用できます。
API の変更
ModalDrawer
とBottomDrawer
のデフォルトをDrawerDefaults
オブジェクトに移動しました。(Ib5b2e)
バージョン 1.7.0-alpha05
2024 年 3 月 20 日
androidx.compose.material:material-*:1.7.0-alpha05
がリリースされました。バージョン 1.7.0-alpha05 に含まれる commit はこちらをご覧ください。
API の変更
ScaffoldSubcomposeInMeasureFix
フラグが削除されました。(I67363)
バージョン 1.7.0-alpha04
2024 年 3 月 6 日
androidx.compose.material:material-*:1.7.0-alpha04
がリリースされました。バージョン 1.7.0-alpha04 に含まれる commit はこちらをご覧ください。
新機能
- Navigation Compose の使用時に、ボトムシートをデスティネーションとしてサポートする新しい
androidx.compose.material:material-navigation
アーティファクトを追加しました。これは、Accompanist Navigation Material ライブラリに代わるものです。(d65d57、b/180247978)
バージョン 1.7.0-alpha03
2024 年 2 月 21 日
androidx.compose.material:material-*:1.7.0-alpha03
がリリースされました。バージョン 1.7.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
BottomDrawer
が試験運用版から安定版に昇格しました。BottomDrawerState
で進行状況が関数として公開されるようになり、特定のターゲット間の進行状況をクエリできるようになりました。BottomDrawerState
でアニメーション仕様のカスタマイズが可能になり、confirmStateChange
は末尾のラムダではなくなりました。(I9c029、b/261423850)BackdropScaffold
が試験運用版から安定版に昇格しました。アニメーションの仕様は、ガイドラインに沿ってtween
仕様になりました。末尾ラムダとの混同を避けるため、BackdropScaffold
のsnackbarHost
パラメータは最後のパラメータではなくなりました。BackdropScaffoldState
は、アンカー間の進行状況をクエリするprogress(from, to)
API を公開します。(I73f48、b/261423218)- 標準のボトムシートが試験運用版から安定版に昇格しました。非推奨のコンストラクタが削除されました。アニメーションの仕様が、ガイドラインに従ってトゥイーンの仕様に変更されました。(I3c1a8、b/278692145、b/261409034)
- モーダル ボトムシートが試験運用版から安定版に昇格しました。非推奨のコンストラクタが削除されました。アニメーションの仕様は、ガイドラインに沿って
tween
仕様になりました。(Ic53f4、b/278692145、b/266780235、b/261409034)
バグの修正
- 特定のシナリオで
LookaheadScope
と組み合わせてBackdropScaffold
がクラッシュする問題を修正しました。(I51396) - パフォーマンスを改善するため、
BottomSheetScaffold
内のサブコンポジションを削除しました。特定のシナリオでLookaheadScope
と組み合わせてBottomSheetScaffold
がクラッシュする問題を修正しました。(I2f90c) ModalBottomSheetLayout
内のサブコンポジションを削除し、パフォーマンスを改善しました。(I7a025)
バージョン 1.7.0-alpha02
2024 年 2 月 7 日
androidx.compose.material:material-*:1.7.0-alpha02
がリリースされました。バージョン 1.7.0-alpha02 に含まれる commit については、こちらをご覧ください。
バージョン 1.7.0-alpha01
2024 年 1 月 24 日
androidx.compose.material:material-*:1.7.0-alpha01
がリリースされました。バージョン 1.7.0-alpha01 に含まれる commit については、こちらをご覧ください。
動作の変更
- Material コンポーネントは、新しいリップル API を使用するように移行され、
RippleTheme
をクエリしなくなりました。
API の変更
rememberRipple
とRippleTheme
は material-ripple から非推奨になり、マテリアルやその他のデザイン システム ライブラリに新しいリップル API とRippleConfiguration
API が追加されました。以前は
MutableInteractionSource
を受け入れてデフォルトで{ MutableInteractionSource() }
を記憶していたマテリアル コンポーネントが、null 許容のMutableInteractionSource
を受け入れてデフォルトで null を返すようになりました。ホイスティングせずにMutableInteractionSource
を使用する場合は、null を渡す必要があります。これにより、一部のコンポーネントは、必要な場合にのみインスタンスを遅延作成できるため、パフォーマンスが向上します。独自のコンポーネントでも同様の変更を行うことをおすすめします。
バージョン 1.6
バージョン 1.6.8
2024 年 6 月 12 日
androidx.compose.material:material-*:1.6.8
がリリースされました。バージョン 1.6.8 には、これらの commit が含まれています。
バージョン 1.6.7
2024 年 5 月 1 日
androidx.compose.material:material-*:1.6.7
がリリースされました。バージョン 1.6.7 には、これらの commit が含まれています。
バージョン 1.6.6
2024 年 4 月 17 日
androidx.compose.material:material-*:1.6.6
がリリースされました。前回のリリースからの変更はありません。
バージョン 1.6.5
2024 年 4 月 3 日
androidx.compose.material:material-*:1.6.5
がリリースされました。バージョン 1.6.5 には、これらの commit が含まれています。
バージョン 1.6.4
2024 年 3 月 20 日
androidx.compose.material:material-*:1.6.4
がリリースされました。バージョン 1.6.4 には、これらの commit が含まれています。
バージョン 1.6.3
2024 年 3 月 6 日
androidx.compose.material:material-*:1.6.3
がリリースされました。バージョン 1.6.3 には、これらの commit が含まれています。
バグの修正
ExposedDropdownMenu
の回帰を修正して、再度フォーカスできるようにしました。(c0e0ed、b/323694447)
バージョン 1.6.2
2024 年 2 月 21 日
androidx.compose.material:material-*:1.6.2
がリリースされました。バージョン 1.6.2 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.1
2024 年 2 月 7 日
androidx.compose.material:material-*:1.6.1
がリリースされました。バージョン 1.6.1 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.0
2024 年 1 月 24 日
androidx.compose.material:material-*:1.6.0
がリリースされました。バージョン 1.6.0 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.0-rc01
2024 年 1 月 10 日
androidx.compose.material:material-*:1.6.0-rc01
がリリースされました。バージョン 1.6.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.0-beta03
2023 年 12 月 13 日
androidx.compose.material:material-*:1.6.0-beta03
がリリースされました。バージョン 1.6.0-beta03 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.0-beta02
2023 年 11 月 29 日
androidx.compose.material:material-*:1.6.0-beta02
がリリースされました。バージョン 1.6.0-beta02 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.0-beta01
2023 年 11 月 15 日
androidx.compose.material:material-*:1.6.0-beta01
がリリースされました。バージョン 1.6.0-beta01 に含まれる commit については、こちらをご覧ください。
バージョン 1.6.0-alpha08
2023 年 10 月 18 日
androidx.compose.material:material-*:1.6.0-alpha08
がリリースされました。バージョン 1.6.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
materialIcon
関数を非推奨にして、autoMirror
パラメータを受け取るオーバーロードに置き換えます。(Ia338d)
バグの修正 - 大規模なコンテンツの場合、ナビゲーション アイテムの高さを自動的に増やします。(0c4ecc、b/272336962)
バージョン 1.6.0-alpha07
2023 年 10 月 4 日
androidx.compose.material:material-*:1.6.0-alpha07
がリリースされました。バージョン 1.6.0-alpha07 に含まれる commit については、こちらをご覧ください。
- 依存関係の更新
バージョン 1.6.0-alpha06
2023 年 9 月 20 日
androidx.compose.material:material-*:1.6.0-alpha06
がリリースされました。バージョン 1.6.0-alpha06 に含まれる commit については、こちらをご覧ください。
互換性を破る動作変更
BottomSheetScaffold
からドロワー関連の機能を削除しました。以前の機能を実現するには、BottomSheetScaffold
を Drawer コンポーザブルでラップします。例については、BottomSheetScaffoldWithDrawerSample
をご覧ください。(I1dcc8)
API の変更
- Scaffold が子を測定するタイミング(測定時か配置時か)を制御する一時的なフラグを導入しました。デフォルトでは、測定単位は測定単位です。新しい動作で問題が発生した場合は、問題を報告してください。(If6e3b)
バージョン 1.6.0-alpha05
2023 年 9 月 6 日
androidx.compose.material:material-*:1.6.0-alpha05
がリリースされました。バージョン 1.6.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
- 右から左のレイアウトでレンダリングされたときのアイコンの自動ミラーリングのサポートを追加しました。material-icons-core モジュールと material-icons-extended モジュールのアイコンに、アイコンが許可している場合に自動ミラーリングをサポートするための追加のアイコンセットが提供されるようになりました。新しいセットには
Icons.AutoMirrored.Filled...
などの接頭辞が付いており、RTL レイアウトで自動的にミラーリングされるアイコンが含まれています。自動ミラーリングできる(すべき)アイコンの一覧については、マテリアル アイコンのリストをご覧ください。
API の変更
- 右から左のレイアウトでレンダリングされたときのアイコンの自動ミラーリングのサポートを追加しました。material-icons-core モジュールと material-icons-extended モジュールのアイコンに、アイコンが許可している場合に自動ミラーリングをサポートするための追加のアイコンセットが提供されるようになりました。新しいセットには
Icons.AutoMirrored.Filled...
などの接頭辞が付いており、RTL レイアウトで自動的にミラーリングされるアイコンが含まれています。自動ミラーリングできる(すべき)アイコンの一覧については、マテリアル アイコンのリストをご覧ください。これらのアイコンに以前提供されていたアイコン プロパティは非推奨となり、移行を支援する代替ブロックの候補が表示されます。右から左(RTL)のアイコンのミラーリングに特別な処理を行っていない場合は、新しいアイコンセットに移行することをおすすめします。たとえば、Icons.Filled.ArrowBack
はIcons.AutoMirrored.Filled.ArrowBack
にリファクタリングする必要があります。(I4b511)
バージョン 1.6.0-alpha04
2023 年 8 月 23 日
androidx.compose.material:material-*:1.6.0-alpha04
がリリースされました。バージョン 1.6.0-alpha04 に含まれる commit については、こちらをご覧ください。
バグの修正
LookaheadScope
内の Scaffold 内でSubcomposition
(BottomSheetScaffold
など)を使用する一部のコンポーネントが、サイズの読み取りを早すぎるタイミングで試行していた問題を修正しました。(If2c5d)DropdownMenu
のoffset
の計算を修正し、x オフセットがローカル レイアウトの向きにのみ依存するようにしました。これにより、メニューが画面の下部付近にある場合でも、y オフセットが反転しなくなります。(Iccc74、b/294103942)BottomSheetScaffold
の内部レイアウトを最適化し、LookaheadLayout
内のBottomSheetScaffold
に関する潜在的な問題を修正しました。(Ic0afa)
バージョン 1.6.0-alpha03
2023 年 8 月 9 日
androidx.compose.material:material-*:1.6.0-alpha03
がリリースされました。バージョン 1.6.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
- Material2 コンポーネントに、
windowInsets
を渡して Android の端から端までの機能をサポートする個別の API が追加されました。material3 コンポーネントとは異なり、material2 コンポーネントはデフォルトでインセットをサポートしていないため、値を手動で渡す必要があります。ガイダンスについては、対応するサンプルをご覧ください。(I655e8)
バージョン 1.6.0-alpha02
2023 年 7 月 26 日
androidx.compose.material:material-*:1.6.0-alpha02
がリリースされました。バージョン 1.6.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- 密度依存関係をコンポーネント レベルに移動します。これは、
SwipeToDismiss
とシートベースのコンポーネントに適用されます。密度がパラメータである新しいオーバーロードを使用してください。(I1846e) - コンポーザブルに許可される入力を指定する追加のアノテーション(I51109)
- API ファイルを更新し、互換性抑制のアノテーションを付けました。(I8e87a、b/287516207)
FabPosition
の新しい開始位置の配置を追加しました。(Ib7aea、b/170592777)- マテリアル 2 の
TextFieldColorsWithIcons
は非推奨となり、TextFieldColors
に置き換えられました。leadingIconColor
またはtrailingIconColor
をオーバーライドする場合は、オーバーロードもinteractionSource
でオーバーライドします。(Id57ed、b/199377790)
バージョン 1.6.0-alpha01
2023 年 6 月 21 日
androidx.compose.material:material-*:1.6.0-alpha01
がリリースされました。バージョン 1.6.0-alpha01 に含まれる commit については、こちらをご覧ください。
動作の変更
- マテリアル 2 タイポグラフィで、
includeFontPadding
がデフォルトでfalse
になりました。デフォルトの行の高さのスタイルもTrim.None
とAlignment.Center
に変更され、Typography
のTextStyle
に明示的なlineHeight
(sp 単位)が追加されました。これらの値をカスタマイズする場合は、API のドキュメントをご覧ください。また、これらの変更について詳しくは、ブログ投稿をご覧ください。(Icabc3、I3f801、I04c03)
API の変更
- マテリアルの
Swipeable
API は非推奨になりました。シンプルなユースケースと複雑なユースケースの両方に最適化された Foundation のAnchoredDraggable
API をご覧ください。(I732e0)
バグの修正
BottomSheetState
、ModalBottomSheetState
、BottomDrawerState
に、現在の(安定した)アンカーとスワイプ方向の最も近いアンカー間の進行状況を示す progress プロパティが公開されました。(I1b317、b/271169225、b/276375124、b/276776071、b/270066861)
バージョン 1.5
バージョン 1.5.4
2023 年 10 月 18 日
androidx.compose.material:material-*:1.5.4
がリリースされました。バージョン 1.5.4 に含まれる commit については、こちらをご覧ください。
バージョン 1.5.3
2023 年 10 月 4 日
androidx.compose.material:material-*:1.5.3
がリリースされました。このバージョンに変更はありません
バージョン 1.5.2
2023 年 9 月 27 日
androidx.compose.material:material-*:1.5.2
がリリースされました。バージョン 1.5.2 に含まれる commit については、こちらをご覧ください。
バージョン 1.5.1
2023 年 9 月 6 日
androidx.compose.material:material-*:1.5.1
がリリースされました。変更はありません。バージョン 1.5.1 に含まれる commit については、こちらをご覧ください。
バージョン 1.5.0
2023 年 8 月 9 日
androidx.compose.material:material-*:1.5.0
がリリースされました。バージョン 1.5.0 に含まれる commit については、こちらをご覧ください。
1.4.0 以降の重要な変更
API の変更
- Swipeable1 API の変更を
BottomSheetScaffold
に組み込みました。BottomSheetState
のconfirmStateChange
パラメータの名前をconfirmValueChange
に変更しました。progress
が浮動小数点値として公開されるようにしました。animateTo
とsnapTo
は内部用です。代わりにexpand()
とcollapse()
を使用してください。direction
とoverflow
を削除しました。offset
をrequireOffset()
に置き換えました。I323b4 - Drawer の
snapTo
関数を試験運用版でない API としてマークしました。(Ib9c18、b/261425368) - 円形の進行状況インジケーターにトラックの色パラメータを追加し、円形と線形の両方の進行状況インジケーターにストロークの上限パラメータを追加しました。(Ie668c、b/216325962、b/222964817)
ModalBottomSheetState
、ModalBottomSheetState.Saver
、rememberModalBottomSheetState
のconfirmStateChange
の名前をconfirmValueChange
に変更しました。(Ib48d1)Modifier.minimumInteractiveComponentSize
を追加しました。これを使用すると、要素のサイズが小さい場合のタップ操作の曖昧さを解消するために、48 dp 以上のサイズを予約することができます。(I33f58、b/258495559)- Swipeable API の変更を
ModalBottomSheetLayout
に組み込みました。ModalBottomSheetState
の animateTo はanimationSpec
パラメータを取らなくなり、公開されているオフセットは null 許容型になりました。オフセットを要求するにはrequireOffset
を使用します。(Ia2e79) @JvmDefaultWithCompatibility
アノテーションを追加しました。(I8f206)- Swipeable API の変更を
ModalDrawer. DrawerState
に組み込みました。ModalDrawer. DrawerState
のanimateTo
が open メソッドと close メソッドで置き換えられ、オフセットが null 許容型になりました。オフセットを要求するにはrequireOffset
を使用します。(I3de9e) - ジェスチャーがスクロール イベントになる可能性がある場合にタップを正しく遅延するように Drawers と Sheets を更新しました。
- material と material3 の Text、
TextField
とOutlinedTextField
にminLines
パラメータを追加し、行数の点でコンポーネントの最小高さを設定できるようにしました。(I4af1d)
バグの修正
pullRefresh
が速度を消費しないため、オーバースクロールが表示される問題を修正しました。また、消費された速度に対する浮動小数点を返すようModifier.pullRefresh
でonRelease
ラムダの API 署名も変更しました。(I7db65、b/266874741)BottomSheetState
、ModalBottomSheetState
、BottomDrawerState
に、現在の(安定した)アンカーとスワイプ方向の最も近いアンカー間の進行状況を示す progress プロパティが公開されました。(I1b317、b/271169225、b/276375124、b/276776071、b/270066861)- アクションが重ねて表示されてダイアログの幅に収まる場合、
AlertDialog
閉じるアクションが確認アクションの下に表示されるようにしました。この修正により、実装がマテリアル デザインの仕様に準拠するようになりました。(I029de、b/235454277) gesturesEnabled
が false に設定されている場合、BottomSheetScaffold
はネストされたスクロールに参加しなくなります。(I634f3、b/215403277)- スロットに空のコンテンツが指定されると
BottomSheetScaffold
がクラッシュするバグを修正しました。(Ib24a5、b/235588730) PullRefreshIndicator
がクリック/ポインタ イベントをインターセプトする問題を修正。(2494256、b/271777421)- 画面の向きの変更時に
ModalBottomSheetLayout
がクラッシュするエッジケースの問題を修正しました。シート コンテンツ内のレイアウト アニメーション(Modifier.animateContentSize
など)がスムーズに動作するようになりました。(I2f981、b/266780234)
バージョン 1.5.0-rc01
2023 年 7 月 26 日
androidx.compose.material:material-*:1.5.0-rc01
がリリースされました。バージョン 1.5.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.5.0-beta03
2023 年 6 月 28 日
androidx.compose.material:material-*:1.5.0-beta03
がリリースされました。バージョン 1.5.0-beta03 に含まれる commit については、こちらをご覧ください。
バグの修正
BottomSheetState
、ModalBottomSheetState
、BottomDrawerState
に、現在の(安定した)アンカーとスワイプ方向の最も近いアンカー間の進行状況を示す progress プロパティが公開されました。(I1b317、b/271169225、b/276375124、b/276776071、b/270066861)
バージョン 1.5.0-beta02
2023 年 6 月 7 日
androidx.compose.material:material-*:1.5.0-beta02
がリリースされました。バージョン 1.5.0-beta02 に含まれる commit については、こちらをご覧ください。
バージョン 1.5.0-beta01
2023 年 5 月 24 日
androidx.compose.material:material-*:1.5.0-beta01
がリリースされました。バージョン 1.5.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
DrawerState
とBottomDrawerState
のオフセットは null 許容型ではなくなりました。代わりに、オフセットがないことを示すFloat.NaN
を返します。(Ie9855)- 表示されるメニュー項目の縦方向のスクロール状態を制御するために、
DropdownMenu
またはExposedDropdownMenu
を作成するときにScrollState
を渡すオプションを追加しました。(Idb009、b/185304441) ModalBottomSheetLayout
のジェスチャーを有効または無効にするためのサポートを追加し、ユーザーがより多くの機能を備えたボトムシートに設定できるようにしました。(I40af0)- テキストの色を効率的にアニメーション化または設定できるように、
BasicText
に色パラメータを追加しました。(Iffd88、b/246961787) - セマンティクス プロパティ
isContainer
の名前をisTraversalGroup
に変更しました。(I121f6)
バグの修正
- アクションが重ねて表示されてダイアログの幅に収まる場合、
AlertDialog
閉じるアクションが確認アクションの下に表示されるようにしました。この修正により、実装がマテリアル デザインの仕様に準拠するようになりました。(I029de、b/235454277)
バージョン 1.5.0-alpha04
2023 年 5 月 10 日
androidx.compose.material:material-*:1.5.0-alpha04
がリリースされました。バージョン 1.5.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
- 密度依存関係をコンポーネント レベルに移動します。これは、コンポーネント
BottomDrawer
、ModalBottomSheetLayout
、BottomSheetScaffold
、Switch
、ModalDrawer
に適用されます。密度がパラメータである新しいオーバーロードを使用してください。(I8fbd8)
バージョン 1.5.0-alpha03
2023 年 4 月 19 日
androidx.compose.material:material-*:1.5.0-alpha03
がリリースされました。バージョン 1.5.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
- 新しい
SwipeableV2
API を使用するようにBottomDrawer
内部を更新しました。これにより、BottomDrawerState
にはクラスレベルで定義された API のみが含まれ、SwipeableState
からメソッドやプロパティを継承しなくなります。内部SwipeableV2State
を使用したコンポジションを使用しています。オフセットは、null を許可する浮動小数点プロパティになりました。現在の値とスワイプ ターゲット値には、引き続き currentValue プロパティと targetValue プロパティからアクセスできます。以前のクラスレベルのメソッド(open、expand、close など)とプロパティ(isOpen/isClosed
など)は引き続きサポートされます。(Iad40c、b/178529942、b/220676296)
バグの修正
- Switch コンポーネントの内部を更新しました。スイッチをドラッグすると、最も近い(ターゲット状態)のプレビューが表示されるようになりました。(Id90d4)
BottomSheetScaffold
のアニメーション化されたシート コンテンツ(シート コンテンツのModifier.animateContentSize
など)が最適化され、スムーズに動作するようになりました。(Ia913c、b/270518202、b/254446195)gesturesEnabled
がfalse
に設定されている場合、BottomSheetScaffold
はネストされたスクロールに参加しなくなります。(I634f3、b/215403277)
バージョン 1.5.0-alpha02
2023 年 4 月 5 日
androidx.compose.material:material-*:1.5.0-alpha02
がリリースされました。バージョン 1.5.0-alpha02 に含まれる commit については、こちらをご覧ください。
バグの修正
- スロットに空のコンテンツが指定されると
BottomSheetScaffold
がクラッシュするバグを修正しました。(Ib24a5、b/235588730) PullRefreshIndicator
がクリック / ポインタ イベントをインターセプトする問題を修正しました。(2494256、b/271777421)
バージョン 1.5.0-alpha01
2023 年 3 月 22 日
androidx.compose.material:material-*:1.5.0-alpha01
がリリースされました。バージョン 1.5.0-alpha01 に含まれる commit については、こちらをご覧ください。
バグの修正
- チップグループのリフローの例を追加しました。単一行のチップグループ サンプルの子チップ間の水平方向のパディングを仕様に一致するように更新しました。(I3b155)
- 画面の向きの変更時に
ModalBottomSheetLayout
がクラッシュするエッジケースの問題を修正しました。シート コンテンツ内のレイアウト アニメーション(Modifier.animateContentSize
など)がスムーズに動作するようになりました。(I2f981、b/266780234)
バージョン 1.4
バージョン 1.4.3
2023 年 5 月 3 日
androidx.compose.material:material-*:1.4.3
がリリースされました。変更はありません(バージョンのみが引き上げられています)。
バージョン 1.4.2
2023 年 4 月 19 日
androidx.compose.material:material-*:1.4.2
がリリースされました。バージョン 1.4.2 に含まれる commit については、こちらをご覧ください。
バージョン 1.4.1
2023 年 4 月 5 日
androidx.compose.material:material-*:1.4.1
がリリースされました。バージョン 1.4.1 に含まれる commit については、こちらをご覧ください。
バージョン 1.4.0
2023 年 3 月 22 日
androidx.compose.material:material-*:1.4.0
がリリースされました。バージョン 1.4.0 に含まれる commit については、こちらをご覧ください。
1.3.0 以降の重要な変更
API の変更
Modifier.minimumInteractiveComponentSize
を追加しました。これを使用すると、要素のサイズが小さい場合のタップ操作の曖昧さを解消するために、48 dp 以上のサイズを予約することができます。(I33f58、b/258495559)- Swipeable API の変更を
ModalDrawer
に組み込みました。DrawerState
のanimateTo
が open メソッドと close メソッドに置き換えられ、オフセットが null 許容型になりました。オフセットを要求するにはrequireOffset
を使用します。(I3de9e) - material と material3 の Text、
TextField
とOutlinedTextField
にminLines
パラメータを追加し、行数の点でコンポーネントの最小高さを設定できるようにしました。(I4af1d) minLines
パラメータをBasicText
とBasicTextField
に追加しました。これにより、これらのコンポーザブルの最小の高さを行数で設定できるようになりました。(I24294、b/122476634)
バージョン 1.4.0-rc01
2023 年 3 月 8 日
androidx.compose.material:material-*:1.4.0-rc01
がリリースされました。変更はありません。バージョン 1.4.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.4.0-beta02
2023 年 2 月 22 日
androidx.compose.material:material-*:1.4.0-beta02
がリリースされました。バージョン 1.4.0-beta02 に含まれる commit については、こちらをご覧ください。
API の変更
- Swipeable API の変更を
BottomSheetScaffold
に組み込みました。BottomSheetState
のconfirmStateChange
パラメータの名前をconfirmValueChange
に変更しました。progress
が浮動小数点値として公開されるようにしました。animateTo
とsnapTo
は内部用です。代わりにexpand()
とcollapse()
を使用してください。direction
とoverflow
を削除しました。offset
をrequireOffset()
に置き換えました。(I323b4)
バグの修正
- クリック可能で選択可能なサーフェスからセマンティック ロールを削除し、それを使っていたコンポーネントを更新して、modifier.semantics を使ってロールを設定するようにしました(Ibb4ba)
- 塗りつぶしアイコン
desktop_mac
、directions
、kitchen
を微調整する、拡張されたマテリアル アイコンのマイナー アップデートを行いました。(I65f5e)
バージョン 1.4.0-beta01
2023 年 2 月 8 日
androidx.compose.material:material-*:1.4.0-beta01
がリリースされました。バージョン 1.4.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
pullRefresh
が速度を消費しないため、オーバースクロールが表示される問題を修正しました。また、消費された速度に対する浮動小数点を返すようModifier.pullRefresh
でonRelease
ラムダの API 署名も変更しました。(I7db65、b/266874741)- プロパティ ゲッター
LocalMinimuTouchTargetEnforcement
を復元し、非推奨のマークを付けてLocalMinimumInteractiveComponentEnforcement
にリダイレクトするようにしました。(I60dd5)
バージョン 1.4.0-alpha05
2023 年 1 月 25 日
androidx.compose.material:material-*:1.4.0-alpha05
がリリースされました。バージョン 1.4.0-alpha05 に含まれる commit については、こちらをご覧ください。
バグの修正
ModalBottomSheetLayout's HalfExpanded
の状態が正しく計算されず、シートがフローティングに見える問題を修正しました。(I8c615、b/265610459)- 特定の状況で非表示状態から表示状態になったシートがクラッシュする
ModalBottomSheetLayout
のバグを修正しました。(Ia9265、b/265444789)
バージョン 1.4.0-alpha04
2023 年 1 月 11 日
androidx.compose.material:material-*:1.4.0-alpha04
がリリースされました。バージョン 1.4.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
- Surface に
IsContainer
セマンティクス プロパティを追加しました。後で変更する際にこのプロパティを使って、サーフェスなど要素の意味論的意味に基づいて移動順序を決定します。(I63379) - Drawer の
snapTo
関数を試験運用版でない API としてマークしました。(Ib9c18、b/261425368) - 円形の進行状況インジケーターにトラックの色パラメータを追加し、円形と線形の両方の進行状況インジケーターにストロークの上限パラメータを追加しました。(Ie668c、b/216325962、b/222964817)
ModalBottomSheetState
、ModalBottomSheetState.Saver
、rememberModalBottomSheetState
のconfirmStateChange
の名前をconfirmValueChange
に変更しました。(Ib48d1)- 非推奨になった非表示関数の戻り値の型の null 可能性を拡大しました。(Ibf7b0)
Modifier.minimumInteractiveComponentSize
を追加しました。これを使用すると、要素のサイズが小さい場合のタップ操作の曖昧さを解消するために、48 dp 以上のサイズを予約することができます。(I33f58、b/258495559)- Swipeable API の変更を
ModalBottomSheetLayout
に組み込みました。ModalBottomSheetState
のanimateTo
はanimationSpec
パラメータを取らなくなり、公開されているoffset
は null 許容型になりました。offset
を要求するにはrequireOffset
を使用します。(Ia2e79)
バグの修正
ModalBottomSheetLayout
のシートの最大幅が 640 dp になりました。(I71a4f、b/234927577)- 時間が経過しても
rememberPullRefreshState
がrefreshThreshold
とrefreshingOffset
を更新しない問題を修正しました。(Ifed10、b/263159832) - 進行状況インジケーターの進捗が予想範囲に適切にバインドされるようになりました。(I8a7eb、b/262262727)
ModalBottomSheetState
がまだアンカーを受け取っていない場合は、例外をスローする代わりに、snapTo
またはanimateTo
が呼び出されたときにアニメーションなしでcurrentValue
を更新します。(I2c91b)- マテリアル 2 の
FilterChip
の実装で有効状態を修正しました。(Id326a、b/261329817) - 縦向きから横向きに回転したとき
HalfExpanded
になるとModalBottomSheetLayout
がクラッシュするバグを修正しました。設定を確認するなどして、正しいinitialValue
を渡していることを確認してください。(Ie8df7、b/182882364) - シートのコンテンツが空の場合に
ModalBottomSheetLayout
がクラッシュする問題を修正しました。ModalBottomSheetLayout
では、空のシート コンテンツが許容されるようになりました。シートのコンテンツが空の場合は、単に非表示の状態になります。(Ic2288、b/200980998、b/216693030)
既知の問題
androidx.compose.foundation:1.4.0-alpha03
からandroidx.compose.foundation:1.4.0-alpha04
に更新するときに、java.lang.NoSuchFieldError
エラーが発生することがあります。この問題はこちらで最初に報告されました。修正はすでに送信されており、次回の Compose アップデートで利用できるようになります。回避策として、androidx.compose.material
ライブラリとandroidx.compose.material3
ライブラリを最新バージョン(1.1.0-alpha04)に更新するか、androidx.compose.foundation
を 1.4.0-alpha03 にダウングレードしてください。
バージョン 1.4.0-alpha03
2022 年 12 月 7 日
androidx.compose.material:material-*:1.4.0-alpha03
がリリースされました。バージョン 1.4.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
@JvmDefaultWithCompatibility
アノテーションを追加しました。(I8f206)Swipeable
API の変更をModalDrawer
に組み込みました。DrawerState
のanimateTo
がopen
メソッドとclose
メソッドで置き換えられ、オフセットが null 許容型になりました。オフセットを要求するにはrequireOffset
を使用します。(I3de9e)- 祖先のスクロール情報をクエリするための Modifier API を追加しました。(I2ba9d、b/203141462)
- ジェスチャーがスクロール イベントになる可能性がある場合にタップ操作を正しく遅延させるために
Clickable
で使用します。 Scrollable ViewGroup
内で使用する場合にClickables
がリップルを正しく遅延しない問題を修正しました。- ジェスチャーがスクロール イベントになる可能性がある場合にタップを正しく遅延するように Drawers と Sheets を更新しました。
バグの修正
- 更新状態が true に変更されていない場合、
onRefresh
が呼び出された後にPullRefreshIndicator
が止まってしまう問題を修正しました。(Ie2416、b/248274004)
依存関係の更新
- Compose UI と Compose Material は Lifecycle 2.5.1 に依存するようになりました。(I05ab0、b/258038814)
バージョン 1.4.0-alpha02
2022 年 11 月 9 日
androidx.compose.material:material-*:1.4.0-alpha02
がリリースされました。バージョン 1.4.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- 柔軟性を高めるため、
awaitFirstDown
とwaitForUpOrCancellation
がPointerEventPass
を受け取るようになりました。(I7579a、b/212091796) - material と material3 の Text、
TextField
とOutlinedTextField
にminLines
パラメータを追加し、行数の点でコンポーネントの最小高さを設定できるようにしました。(I4af1d) BasicTex
とBasicTextField
にminLines
パラメータを追加しました。これにより、これらのコンポーザブルの最小の高さを行数で設定できるようになりました。(I24294、b/122476634)
バージョン 1.4.0-alpha01
2022 年 10 月 24 日
androidx.compose.material:material-*:1.4.0-alpha01
がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
- ジェスチャー検出器の新しいメソッド
awaitEachGesture()
が追加されました。これはforEachGesture()
と同じように動作しますが、ジェスチャーのループはAwaitPointerEventScope
内で完全に動作するため、反復処理間でイベントが失われることはありません。 - ジェスチャー間でイベントが失われてしまうため、
forEachGesture()
が非推奨になり、awaitEachGesture()
に置き換えられました。(Iffc3f、b/251260206)
バージョン 1.3
バージョン 1.3.1
2022 年 11 月 9 日
androidx.compose.material:material-*:1.3.1
がリリースされました。バージョン 1.3.1 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0
2022 年 10 月 24 日
androidx.compose.material:material-*:1.3.0
がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください。
1.2.0 以降の重要な変更
互換性を破る動作変更
- ダイアログとポップアップでサポートされる最大エレベーションが減って 8 dp になりました。
API の変更
- Pull-To-Refresh コンポーネントを Compose に追加しました。(I29168)
- RangeSlider のパラメータ名を values から value に変更しました。(I3b79a)
バージョン 1.3.0-rc01
2022 年 10 月 5 日
androidx.compose.material:material-*:1.3.0-rc01
がリリースされました。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-beta03
2022 年 9 月 21 日
androidx.compose.material:material-*:1.3.0-beta03
がリリースされました。バージョン 1.3.0-beta03 に含まれる commit については、こちらをご覧ください。
API の変更
- Pull-To-Refresh コンポーネントを Compose に追加しました。(I29168)
バージョン 1.3.0-beta02
2022 年 9 月 7 日
androidx.compose.material:material-*:1.3.0-beta02
がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください。
1.3.0-beta01 からの変更はありません
バージョン 1.3.0-beta01
2022 年 8 月 24 日
androidx.compose.material:material-*:1.3.0-beta01
がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください。
互換性を破る動作変更
ダイアログとポップアップでサポートされる最大エレベーションが減って 8 dp になりました。
Compose のダイアログとポップアップに指定できるエレベーションの最大値が、30 dp から 8 dp に引き下げられました。この変更は、マテリアルと UI のカスタム ダイアログとカスタム ポップアップの両方に影響します。この変更の目的は、Android S より前のバージョンにおけるユーザー補助機能のバグを軽減し、各ウィンドウ内でユーザー補助サービスによりダイアログ内やポップアップ内のコンテンツを操作できるようにすることです。
この変更による影響が生じるのは、ダイアログやポップアップのカスタム実装を作成する際にエレベーションを 8 dp より高く設定する場合に限られます。ダイアログやポップアップのエレベーションを下げることを検討してください。この新しい動作を無効にする必要がある場合は、ご希望のエレベーションを設定して独自のダイアログやポップアップをフォークすることを考えてみてください。ただし、ユーザー補助に悪影響が及ぶ可能性があるため、この設定はおすすめしません。デベロッパーは、ユーザー補助サービスがダイアログやポップアップの下部を操作して読み取れるようにする必要があります。
バージョン 1.3.0-alpha03
2022 年 8 月 10 日
androidx.compose.material:material-*:1.3.0-alpha03
がリリースされました。バージョン 1.3.0-alpha03 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-alpha02
2022 年 7 月 27 日
androidx.compose.material:material-*:1.3.0-alpha02
がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください。
外部からの協力
- Scaffold の
FloatingActionButton
に関するAnimatedVisibility
の問題を修正しました。(I3a0ae、b/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.1
2022 年 8 月 10 日
androidx.compose.material:material-*:1.2.1
がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください。
バージョン 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 に含まれる commit については、こちらをご覧ください。
バージョン 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 の上部に配置され、開いた状態だとシートの下部に固定されています。(Ia80b5、b/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
を作成するには、代わりにコンストラクタを使用します。(Ie6be4、b/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 に含まれる commit については、こちらをご覧ください。
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 の変更
LazyVerticalGrid
とLazyHorizontalGrid
が安定版になりました。(I307c0)LazyVerticalGrid/LazyHorizontalGrid
とすべての関連 API を .grid サブパッケージに移動しました。インポートを androidx.compose.foundation.lazy から androidx.compose.foundation.lazy.grid に更新してください。(I2d446、b/219942574)WindowInsetsControllerCompat
の View のみに依存する以前の変更を元に戻し、一部のウィンドウ フラグの管理に必要な Window が改めて必須になりました。適切な Window が使用されるように(View がダイアログ内にある場合など)、ViewCompat.getWindowInsetsController
が非推奨になり、WindowCompat.getInsetsController
に置き換えられました。(I660ae、b/219572936)- テキスト:
includeFontPadding
がデフォルトでオフになりました。includeFontPadding=false
の結果として起きるクリッピングの問題は対処され、縦長文字ではクリッピングが起きなくなりました。(I31c84、b/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 chips
(I39a6e、b/192585545)TextFieldDecorationBox
とOutlinedTextFieldDecorationBox
を追加しました。BasicTextField
とともに使用すると、マテリアル デザインのテキスト フィールドに基づいてカスタム テキスト フィールドを作成できますが、カスタマイズの選択肢はさらに増えています。- テキスト フィールドの水平方向と垂直方向のパディングを調整する方法を提供しました。(I8c9f1、b/203764564、b/191543915、b/189971673、b/183136600、b/179882597、b/168003617)
ComposableTarget
、ComposableTargetMarker
、ComposableOpenTarget
を追加しました。使用が想定されていない 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 については、こちらをご覧ください。
バグの修正
- チップグループのサンプルを追加しました(I97080、b/192585545)
バージョン 1.2.0-alpha02
2022 年 1 月 26 日
androidx.compose.material:material-*:1.2.0-alpha02
がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- 複雑なロジックのない既存メソッドのオーバーロードであるメソッドに、
NonRestartableComposable
を追加しました。これにより、呼び出し先の内部関数で繰り返される、すべてのパラメータに対するコンパイラ生成のメモ化チェック(equals)を減らすことができます。(I90490) - アクション チップのサポートを追加しました。(I07100、b/192585545)
バージョン 1.2.0-alpha01
2022 年 1 月 12 日
androidx.compose.material:material-*:1.2.0-alpha01
がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
依存関係の更新
- Kotlin
1.6.10
に依存するようになりました。
外部からの協力
ModalBottomSheetState
にisSkipHalfExpanded
フラグが追加されました。これは、コンストラクタで設定することも、後でModalBottomSheetState
のisSkipHalfExpanded
プロパティをtrue
に設定して後で更新することもできます。isSkipHalfExpanded
の値を更新すると、シートが再コンポーズされます。(I18b86、b/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.updateDisplayList
のNullPointerException
を修正しました(aosp/1947059、b/206677462)- Android のクリップボードから読み取る際にクリップボードの内容が原因で発生するクラッシュを修正しました。(I06020、b/197769306)
LazyVerticalGrid
の RTL を修正しました(aosp/1931080、b/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 については、こちらをご覧ください。
バグの修正
Checkbox
に適用される角の丸みを修正しました。(I38b03、b/175198975、b/202309440)
バージョン 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() コンテナ内にある場合にのみ遅延するようになります。(Ibefe0、b/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)
TextField
とDropdownMenu
を含むExposedDropdownMenuBox
に基づくExposedDropdownMenu
を実装(If60b2)- 非推奨となった
dismissOnClickOutside
に代わり、dismissOnOutsideClick
がPopupProperties
に追加されました。新しいプロパティはクリック位置とアンカー境界を受け取るため、onDismissRequest を呼び出す必要があるかどうかを細かく制御できます。たとえば、アンカーでのタップに対するアンカー破棄を防ぐのに役立ちます。updateAndroidWindowManagerFlags
がPopupProperties
に追加され、ポップアップから 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 を更新するまでの間、一時的なエスケープ ハッチとなることのみを目的としています。(I9b966、b/149691127、b/171509422) - 試験運用版の TextFieldColorsWithIcons インターフェースを追加し、TextFieldColors を拡張して、leadingColor と trailingColor に InteractionSource を追加しました。これにより、フォーカス状態に応じて TextField の外観を変更できるようになりました。(I66923、b/198402662)
バージョン 1.1.0-alpha04
2021 年 9 月 15 日
androidx.compose.material:material-*:1.1.0-alpha04
がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
performGesture
とGestureScope
が非推奨になり、それぞれperformTouchInput
とTouchInjectionScope
に置き換えられました。(Ia5f3f, b/190493367)- タップ ターゲットの最小サイズが含まれる
touchBoundsInRoot
をSemanticsNode
に追加しました。これにより、デベロッパーはタップ ターゲットがユーザー補助の最低条件を満たすことができます。(I2e14b、b/197751214)
バグの修正
- 最小限のタップ ターゲットを確保するために、クリップがクリップ領域の外までタップ ターゲット境界を拡張できるようになりました。(I43e10、b/171509422)
- 厚さのパラメータとして
Dp.Hairline
を使用するようにDivider
コンポーザブルが更新され、画面密度にかかわらず単一のピクセル分割線を描画できるようになりました。(I16ffb、b/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
に依存するように Compose1.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 の動作を修正しました。(I03d39、b/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 パラメータを使用するように更新しました。(Ie4fb0、b/180311607) - BadgeBox の名前を BadgedBox に変更し、Badge コンポーザブルを受け入れるようにパラメータを変更しました。BadgedBox の一般的なバッジ コンテンツである Badge コンポーネントを追加しました。(I639c6)
- NavigationRail コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I8de77)
バグの修正
- 下揃えの NavigationRail のサンプルとカタログアプリのデモを追加しました。(I3cffc)
- ダイアログがプラットフォームのサイズ調整動作に従うようになりました。この動作をオーバーライドするには、usePlatformDefaultWidth を false に設定します。(Iffaed、b/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 と AGP7.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 に設定します。(Iffaed、b/192682388)
バージョン 1.0.0-rc01
2021 年 7 月 1 日
androidx.compose.material:material-*:1.0.0-rc01
がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
API の変更
BadgeBox
コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I5e284)PopupProperties
のuseDefaultMaxWidth
の名前をusePlatformDefaultWidth
に変更しました。(I05710)- ダイアログが画面の幅全体を使用できるようになりました。(I83929、b/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 パラメータを追加し、枠線の形状をカスタマイズできるようにしました。(I8f39e、b/181322957)
- TextOverflow をインライン クラスに変更しました。(I433af)
バグの修正
- BottomDrawer、BackdropScaffold、ModalBottomSheetLayout のスクリムが表示されなくなり、Color.Unspecified が渡されます。(I2d899、b/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>
には、このメソッドに「ホット」、「起動」、または「起動後」のフラグを付ける場合にそれぞれ文字H
、S
、P
(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 を受け入れる新しい試験運用版のオーバーロードを使用してください。(Ia8744、b/183775620)- クリックやその他のクリック可能な機能(indication、interactionSource、enabled/disabled)を処理する、新しいカード オーバーロードを追加しました。
Modifier.clickable
では、クリックできない通常のカードを使用することはできませんでした。そのようなカードでは、リップル インジケーションがクリップされないためです。
- クリックやその他のクリック可能な機能(indication、interactionSource、enabled/disabled)を処理する、新しいカード オーバーロードを追加しました。
- 互換性を破る動作変更: サーフェスでクリックを使用するようになったため、
Surface(Modifier.clickable)
を通じて追加されたクリックは no-op になります。サーフェスでは、onClick を受け入れる新しい試験運用版のオーバーロードを使用してください。(I73e6c、b/183775620)- クリックやその他のクリック可能な機能(indication、interactionSource、enabled/disabled)を処理する、新しいサーフェス オーバーロードを追加しました。
Modifier.clickable
では、クリックできない通常のサーフェスを使用することはできませんでした。そのようなサーフェスでは、リップル インジケーションがクリップされないためです。
- クリックやその他のクリック可能な機能(indication、interactionSource、enabled/disabled)を処理する、新しいサーフェス オーバーロードを追加しました。
API の変更
FabPosition
が、将来の拡張に対応するために列挙型からインライン クラスに変換されました。(I030fb)- 列挙型の使用をインライン クラスにリファクタリングして、新しい列挙値の追加時に網羅的な when ステートメントの問題を回避できるようにしました。(I2b5eb)
- clickable と toggleable にタップ タイムアウトを追加して、スクロールやドラッグの際にリップルが表示されないようにしました。(Ia2704、b/168524931)
- ContentDescription と Text のセマンティクス プロパティが、単一の値ではなくリストになり、連結ではなくそのまま結合できるようになりました。また、これらの変更を活用できるように改善されたテスト API も提供されています。(Ica6bf、b/184825850)
Modifier.focusModifier()
が非推奨となり、Modifier.focusTarget()
に置き換えられました。(I6c860)FocusState
列挙型がFocusState
インターフェースに置き換えられました。(Iccc1a、b/187055290)- View-backed リップルの実装が安定したため、
LocalRippleNativeRendering
を削除しました。(I7fab3、b/188569367)
バグの修正
Modifier.onGloballyPositioned()
は、すべての修飾子を適用した後のレイアウト座標ではなく、修飾子チェーン内のこの修飾子の座標を報告するように変更されました。これにより、報告される座標が、修飾子の順序の影響を受けるようになりました。(Ieb67d、b/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 でルートをサポートするための拡張メソッドを使用する必要がなくなりました。(I22beb、b/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 を使用するような問題が発生した場合は、バグを報告してください。(I902f8、b/168777351、b/183019123) - コレクションとそのアイテムをユーザー補助サービスに指定できる CollectionInfo と CollectionItemInfo ユーザー補助 API を追加しました(Id54ef、b/180479017)
- 無効な入力を含むノードをマークできるユーザー補助 API
error
を追加しました。(I12997、b/180584804、b/182142737)
バグの修正
- https://github.com/google/accompanist/pull/365 から、Compose Material のカタログ インセットの実装を更新しました。(I25dc3)
- weight(fill = false) の行と列の子が、使用可能なメイン軸のスペース全体を親に入力させる動作を示さなくなりました。(Ied94d、b/186012444、b/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
が試験運用版としてマークされるようになりました。(I81114、b/181656094)
- API の変更: 既存の試験運用版 BottomDrawer コンポーネントと一致するように、
SoftwareKeyboardController
のhideSoftwareKeyboard
とshowSoftwareKeyboard
の名前を、それぞれhide()
とshow()
に変更しました。- 完全な CompositionLocal インターフェースを提供して、LocalSoftwareKeyboardController を設定できるようにしました(特にテストに役立ちます)。(I579a6)
- LiveRegion ユーザー補助 API が追加されました。ノードがライブ リージョンとマークされている場合に、ユーザー補助サービスがユーザーにその変更を自動的に知らせます。(Idcf6f、b/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
がドロワー スロットのコンテンツをラップするようになりました。親の高さが無限である場合、BottomDrawer
はIllegalStateException
をスローしません。下部ドロワーが親の 50% 未満である場合、展開された状態になるようになりました。BottomDrawerState
とModalBottomSheetLayoutState
に関するドキュメントを更新しました。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 を追加しました。(I5951e、b/168778053)
バグの修正
- 試験運用版 API の一般使用に対する制限を適用します。(I6aa29、b/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 に必要なライフサイクルと保存済み状態のオーナーを正しく設定するには、これらのバージョンが必要です。(I1d6fa、b/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 に置き換えられます。(Iae869、b/168778053)
- Switch、Checkbox、RadioButton アクションのラムダが null 許容になりました。この機能を使用できるように、クリック可能行のチェックボックスのサンプルを更新しました。(If601b、b/171819073)
InteractionState
を[Mutable]InteractionSource
に置き換えました。- インターフェースは、操作イベントを送受信する役割を担います。
interactionState = remember { InteractionState() }
をButton
やModifier.clickable()
などのコンポーネントに渡す代わりに、interactionSource = remember { MutableInteractionSource() }
を使用します。Interaction.Pressed in interactionState
ではなく、InteractionSource で拡張関数(InteractionSource.collectIsPressedAsState() など)を使用する必要があります。- 複雑なユースケースの場合は、InteractionSource.interactions を使用して操作フローを確認できます。詳しくは、InteractionSource のドキュメントとサンプルをご覧ください。
- (I85965、b/152525426、b/171913923、b/171710801、b/174852378)
- CompositionLocals に AccessibilityMananger インターフェースと LocalAccessibilityMananger を追加しました。(I53520)
- 非推奨となった LayoutCoordinates メソッドを削除しました。positionInParent と boundInParent のプロパティの代わりに、関数を使用してください。(I580ed、b/169874631、b/175142755)
- スライダーで有効 / 無効の状態がサポートされるようになりました。(I6d56b、b/179793072)
- 低レベルのテキスト コンポーネント(CoreTextField など)からの入力セッション用に、新しい TextInputSession を作成しました。(I8817f、b/177662148)
- AnimationEndReason.Interruped を削除しました。アニメーションが中断されると、CancellationException がスローされるようになります。(I2cbbc、b/179695417)
@ExperimentalRippleApi
を削除し、RippleAlpha
をインターフェースではなくプロパティを持つクラスに変更しました。(I6df7c)- TextFieldColors インターフェースが追加され、TextField と OutlinedTextField で各種の状態を異なる色で表現できるようになりました。デフォルトの実装については、TextFieldDefaults.textFieldColors と TextFieldDefaults.outlinedTextFieldColors をご覧ください。
- TextField と OutlinedTextField 内の isErrorValue パラメータの名前を isError に変更しました。(I831f9、b/171305338、b/168004067)
- selectionGroup 修飾子を追加し、ユーザー補助機能を提供するためにタブやラジオボタンのコレクションをマークできるようにしました。(Ie5c29)
LazyListState.animateScrollToItem を追加しました
このメソッドは、リスト内の特定のアイテムにスクロールします。(I4bfd7)
ScrollableState.smoothScrollBy()
の名前をanimateScrollBy()
に、LazyListState.snapToItemIndex()
の名前をscrollToItem()
に、ScrollState.smoothScrollTo()
の名前をanimateScrollTo()
に変更しました。(I35ded)@ReadOnlyComposable
としてマークされたコンポーザブルは、他の@ReadOnlyComposables
だけを呼び出すように、コンパイル時に検証されるようになりました。(I58961)TargetAnimation API を削除しました。(If47d1、b/177457083)
Modifier.verticalScroll() / horizontalScroll() のスクロール位置が Ints で表されるようになりました。(I81298)
smoothScrollBy メソッドと scrollBy メソッドのパッケージを
androidx.compose.foundation.gestures.*
に変更しました(I3f7c1、b/175294473)FlingConfig の名前を FlingBehavior に変更し、事前定義された Decay ではなく一時停止アニメーションをカスタマイズできるようにしました。(I02b86、b/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 に移動しました。(Iff4a8、b/175294473)
drawerState.open() と drawerState.close() が suspend 関数になりました。コンポジションのスコープを取得して呼び出しを行うには、rememberCoroutineScope() を使用します(I16f60、b/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 のファイルクラス セマンティクスにより、バイナリとの互換性は損なわれますがソースコードとの互換性は維持されるので、多くのユーザーにとって問題にはなりません。
- (I99b7d、b/177245490)
Modifier.scrollable を再構築しました。ScrollableController クラスの代わりにスクロール可能なインターフェースを使用するようになりました(I4f5a5、b/174485541、b/175294473)
Modifier.draggable は、単純なラムダの代わりに、DraggableState を受け入れるようになりました。
rememberDraggableState { delta -> }
を介して状態を作成し、以前と同じ動作を実現できます。(Ica70f、b/175294473)ZoomableController.smoothScaleBy と ZoomableController.stopAnimation が suspend 関数になりました。(I7f970、b/177457083)
これまでに非推奨となった API をいくつか削除しました。(Ice5da、b/178633932)
以下の Material API 変更を加えました。
- Top / BottomAppBar に contentPadding パラメータを追加し、デフォルトのパディングをカスタマイズできるようにしました。
- API ガイドラインに沿って必須のパラメータがオプションのパラメータの前になるよう、BackdropScaffold 内のパラメータの順序を変更しました。
- BottomNavigationItem の
icon
パラメータをselected
とonClick
の後ろになるよう移動しました。 - BottomNavigationItem の
alwaysShowLabels
パラメータの名前をalwaysShowLabel
に変更しました。 - 一部のコンポーネントの
bodyContent
パラメータの名前をcontent
のみに変更しました。 ButtonDefaults.buttonColors()
のパラメータの順序を変更しました。パラメータの型は変更されないため、これによりコードでエラーは発生しません。名前付きパラメータを使用するか、順序を手動で更新してください。そうしないと、コードは以前と同じように動作しません。darkColors()
にsecondaryVariant
パラメータを追加しました。通常、このカラーはダークテーマのsecondary
と同じですが、整合性とカスタマイズ性向上のために追加しました。- ElevationDefaults と animateElevation() はあまり使用されず、役に立っていないため、公開 API のサーフェスから削除しました。
Slider
のonValueChangeEnd
の名前をonValueChangeFinished
に変更し、null 可能にしました。- 整合性のため、
Snackbar
のtext
パラメータの名前をcontent
に変更しました。 DropdownMenuItem
にcontentPadding
パラメータを追加してデフォルトのパディングをカスタマイズできるようにし、content
をRowScope
の拡張にしました。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.indication
のindication
パラメータも必須パラメータに変更しました。(Ic1764、b/152525426)
バグの修正
- TextField の以前の SoftwareKeyboardController インターフェースを置き換える、新しい LocalSoftwareKeyboardController コンポジション ローカル API を追加しました。(I658b6、b/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 を使用してください(If0bbd、b/179071523)
- ImageBitmap や ImageVector の命名規則に合うように、ImagePainter の名前を BitmapPainter に変更し、VectorPainter と名前を揃えました。(Iba381、b/174565889)
- Animatable.snapTo と Animatable.stop が suspend 関数になりました(If4288)
- ComponentActivity.setContent を androidx.activity:activity-compose モジュールの androidx.activity.compose.setContent に移動しました。(Icf416)
- destructuring と copy() メソッドを、これらをほとんど使用しないクラスから削除しました。(I26702、b/178659281)
- ModalBottomSheetState の halfExpand() と expand() を内部関数に変更しました(Ic914e)
- Indication#createInstance を @Composable に変更し、LocalIndication を () -> Indication ではなく Indication を含むように変更しました。(I5eeea、b/157150564)
- 今回に限り AlertDialog と DropdownMenu を Android に移動しました。基盤となるポップアップをさらに細かく設定するために、DropdownMenu に PopupProperties パラメータを追加しました。(I9c443)
- loadFontResource が非推奨になりました。代わりに fontResource を使用してください。imageResource、loadImageResource、vectorResource、loadVectorResource が非推奨になりました。代わりに painterResource を使用してください。(I6b809)
toggle
とtoggleModifier
のパラメータを DropdownMenu から削除し、dropdownModifier
、dropdownOffset
、dropdownContent
の名前をmodifier
、offset
、content
にそれぞれ変更しました。DropdownMenu がPopup
に対して一貫して動作するようになりました。親レイアウトは、メニューの位置に使用されます。ほとんどの場合、toggle
をDropdownMenu
の兄弟になるように移動して、両方をBox
内にラップできます。この API の使用方法について詳しくは、ドキュメントの最新のサンプルをご覧ください。(I884fb)- toIntPx() の名前を roundToPx() に変更しました(I9b7e4、b/173502290)
- IntBounds の名前を IntRect に変更し、API を改善しました。(I1f6ff)
- 展開と折りたたみのセマンティクス アクションを追加しました。ModalBottomSheetState に expand と halfExpand を追加しました(Ib5064)
- Modifier.dragGestureFilter が非推奨になりました。代わりに
Modifier.pointerInput { detectDragGestures (...)}
を使用してください。または、単軸のドラッグには Modifier.draggable を使用します(I0ba93、b/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)) }
のようになります(Ib4c26、b/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 パッケージに移動しました。(I1366e、b/177338004)
save、listSaver()、mapSaver()、autoSaver を androidx.compose.runtime.savedinstancestate から androidx.compose.runtime.saveable に移動しました(I77fe6)
RounderCornerShape、CutCornerShape、CornerBasedShape のパラメータの名前を left/right から start/end に変更して、RTL 方向におけるその形状の自動ミラーリングをサポートするようにしました。自動ミラーリングが不要なときのために、AbsoluteRounderCornerShape と AbsoluteCutCornerShape を導入しました。(I61040、b/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 を使用してください。(I71345、b/177457083)
SemanticsProperties.PaneTitle API を追加しました。(I20d5a)
クリックされるのを防ぐために、Tab と BottomNavigationItem に有効なパラメータを追加しました。BottomNavigationItem を、その API でのレイアウト要件をより適切に表すために RowScope.BottomNavigationItem に変更しました。(Id683d)
tapGestureFilter、doubleTapGestureFilter、longPressGestureFilter、pressIndicaitonGestureFilter が非推奨になりました。代わりに、Modifier.clickable または Modifier.pointerInput を detectTapGestures 関数とともに使用してください。(I6baf9、b/175294473)
ShapeDirection パラメータを Shape の createOutline に追加します。これにより、レイアウト方向に対応した形状を作成できるようになります。(I57c20、b/152756983)
Recomposer.current()
を削除しました。[Abstract]ComposeView のデフォルトは、遅延的に作成されたウィンドウ スコープの Recomposer(ウィンドウの ViewTreeLifecycleOwner によって駆動される)になりました。ホスト ライフサイクルが停止すると、再コンポジションと withFrameNanos に基づくアニメーション ティックが一時停止します。(I38e11)
バグの修正
- アイコンは、適用されるサイズ修飾子のサイズと一致するように拡大されるようになります。たとえば、
Icon(.., modifier = Modifier.size(50.dp)
は 50x50 dp のスペースに描画されます。(Ib2ba9、b/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 に移動されました。(I9420b、b/173387208)
non-suspend scrollBy のサポートを終了し、non-suspend scrollTo を削除しました。
スクロールを制御しスクロールの終了を待機するには、今後は suspend 関数の使用をおすすめします。この移行の一環として、これらの関数の non-suspend バージョンは非推奨や削除の対象となっています。(Ie9ced)
non-suspend smoothScrollBy が非推奨となりました。スクロールを制御しスクロールの終了を待機するには、今後は suspend 関数の使用をおすすめします。この移行の一環として、これらの機能の非 suspend バージョンは非推奨の対象となります。(I12880)
ComposeContentTestRule
を導入しました。これはComposeTestRule
を拡張してsetContent
(ComposeTestRule
から削除済み)を定義するものです。ComposeTestRule
を返しアクティビティを自動的に起動しないファクトリ メソッドcreateEmptyComposeRule()
を追加しました。これは、たとえばActivityScenario.launch
などを使用してテスト中に Activity を起動するときに使用します。(I9d782、b/174472899)Button と FloatingActionButton で使用するリップルは、AmbientIndation を通じて新しい Indication を提供する方法ではカスタマイズできなくなりました。このような方法は、これらのコンポーネントのカスタマイズ手段として意図されたものではありません。この措置によって、これらのコンポーネントが他の Material コンポーネントと整合するようになりました。アプリケーション全体でリップルをカスタマイズするには、RippTheme をご覧ください。(I546c5)
animateAsState が animateFooAsState になりました。ここで Foo はアニメーション化される変数の型です(Float、Dp、Offset など)。(Ie7e25)
BasicTextField が、
decorationBox
という新しいパラメータを受け取るようになりました。アイコン、プレースホルダ、ラベルなどの装飾をテキスト フィールドに追加してヒット ターゲット領域を広げることができます。(I16996)マテリアル テキスト フィールドの幅を 280.dp 未満に設定できないバグを修正しました。(I78373)
canDrag パラメータが Modifier.draggable から削除されました。(Ic4bec、b/175294473)
displaySize は使用しないほうがよいため、削除しました。通常は、onRoot() のサイズまたはウィンドウ サイズ以上を使用することをおすすめします。(I62db4)
Surface にレイアウトの子を複数持てるようになりました。(I66a92、b/144488459)
invalidate と compositionReference() を非推奨にし、それぞれ currentRecomposeScope と rememberCompositionReference に置き換えました。(I583a8)
グローバル座標ではなくウィンドウ相対座標を使用するように、PopupPositionProvider を変更しました。parentGlobalBounds の名前を anchorBounds に変更し、windowGlobalBounds を
windowSize: IntSize
に変更しました。(I2994a)Duration と Uptime を Long ミリ秒に置き換えます。これにより、これらのクラスに対するポインタ入力の依存関係が削除されます。(Ia33b2、b/175142755、b/177420019)
FlingConfig を受け入れる AnimatedFloat.fling が削除されました。代わりに suspend バージョンの Animatable.animateDecay を使用してください。(I4659b、b/177457083)
clickable、toggleable、selectable が、コンポジションの外部でも作成できるようになりました(I0a130、b/172938345、b/175294473)。
イージングが機能インターフェースに変更されました。(Ib14e5)
ScrollableColumn と ScrollableRow が非推奨になりました。スクロールが必要な大きいコンテンツの場合、ScrollableColumn は LazyColumn よりも効率性が劣ります。これは、LazyColumn で行えることが表示要素の構成、測定、描画のみであるためです。ユーザーの効率を考慮して、ScrollableColumn と ScrollableRow を非推奨とし、代わりに LazyColumn と LazyRow の使用を奨励することにしました。この場合でも、ユーザーが遅延動作を不要と判断した場合は次のような修飾子を直接使用できます。Column(Modifier.verticalScroll(rememberScrollState()))(Ib976b、b/170468083)
LazyColumn / LazyRow / LazyVerticalGrid のスコープのための新しい
items(count: Int)
ファクトリ メソッド。items(items: List)
とitemsIndexed(items: List)
が拡張関数になりました。そのため、使用するときは手動でインポートする必要があります。Arrays の新しい拡張機能オーバーロード:items(items: Array)
、itemsIndexed(Array)
(I803fc、b/175562574)試験運用版の monoonicFrameAnimationClockOf メソッドを削除しました。(Ib753f、b/170708374)
グローバル座標メソッドを非推奨とし、ウィンドウに基づく座標メソッドを新たに作成しました。(Iee284)
検査が有効にされた場合にグラフィック レイヤの修飾子を追加する、Modifier.toolingGraphicsLayer を追加しました。(I315df)
FocusRequester.createRefs は、変更の可能性があるため、試験運用版とマークするようになりました。(I2d898、b/177000821)
SemanticsPropertyReceiver.hidden が hiddenToUser という名前に変更され、@ExperimentalComposeUiApi とマークされました。AccessibilityRangeInfo が ProgressBarRangeInfo という名前に変更されました。 stateDescriptionRange が progressBarRangeInfo という名前に変更されました。AccessibilityScrollState が ScrollAxisRange という名前に変更されました。 horizontalAccessibilityScrollState が horizontalScrollAxisRange という名前に変更されました。 VerticalAccessibilityScrollState が verticalScrollAxisRange という名前に変更されました。(Id3148)
テストでは TestCoroutineDispatcher を利用します。(I532b6)
ベクター グラフィックのルートに適用される色合いの解析をサポートするように、ベクター グラフィック API を更新しました。(Id9d53、b/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
に変更しました。(Ia4502、b/171464963) - Position の名前を DpOffset に変更し、getDistance() を削除しました。(Ib2dfd)
- Color.useOrElse() の名前を Color.takeOrElse() に変更しました。(Ifdcf5)
- foundation の Strings.kt に切り替えを追加しました。(I4a5b7、b/172366489)
- FlowRow と FlowColumn が非推奨になりました。代わりにカスタム レイアウトを使用してください。(I09027)。
- Modifier.focus() と Modifier.focusRequester() が非推奨になりました。代わりに Modifier.focusModifier() と Modifier.focusReference() を使用してください。(I75a48、b/175160751、b/175160532、b/175077829)
- nativeClass を ui モジュールに移動し、内部化しました。equals 実装での nativeClass の使用を更新して、代わりに「is MyClass」を使用するようにしました。(I4f734)
バグの修正
- 無効で読み取り専用のテキスト フィールドのサポートを追加しました。(I35279、b/171040474、b/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 を追加しました。(Iaa17a、b/162408885)
- ButtonConstants などの *Constants オブジェクトの名前が変更され、たとえば ButtonDefaults など、Defaults で終わるようになりました。また、これらの新しいオブジェクトのプロパティから不要な
default
プレフィックスも削除しました。(Ibb915、b/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 を返すようになりました。(Ic9ee5、b/174137212、b/174146755)
ShaderBrush をリファクタリングして、描画環境のサイズ設定情報を利用できる場合にシェーダー インスタンスを遅延作成できるようにしました。これを利用すると、カスタムの DrawModifier を実装しなくても、コンポーズ時にコンポーザブルの描画境界全体を占有するグラデーションを定義できます。
グラデーション関数コンストラクタ API を非推奨とし、代わりに Gradient オブジェクトのファクトリ メソッドを導入しました。(I511fc、b/173066799)
Modifier.focusObserver が非推奨になりました。代わりに Modifier.onFocusChanged または Modifier.onFocusEvent を使用してください。(I30f17、b/168511863、b/168511484)
LazyColumnFor、LazyRowFor、LazyColumnForIndexed、LazyRowForIndexed のサポートを終了しました。代わりに LazyColumn と LazyRow を使用してください。(I5b48c)
Dp.VectorConverter、Position.VectorConverter などを animation-core に移動し、古い VectorConveters を非推奨にしました。(If0c4b)
Autofill API が試験運用版 API になり、オプトインが必要になりました。(I0a1ec)
FocusRequester インスタンスを作成するための非構造化宣言を追加しました。(I35d84、b/174817008)
accessibilityLabel の名前を contentDescription に変更し、accessibilityValue の名前を stateDescription に変更しました。(I250f2)
InfiniteRepeatableSpec を作成するための新しい infiniteRepeatable 関数(I668e5)
DropdownMenus の配置動作を、Material の仕様に従って若干変更しました。(I34c72、b/168594123)
TextField に InteractionState のサポートを追加しました。(I61d91)
子孫のセマンティクスをクリアして新しいセマンティクスを設定できるように、Modifier.clearAndSetSemantics を追加しました。(I277ca)
ContentDrawScope を DrawScope と同じく ui-graphics モジュールに移動しました。(Iee043、b/173832789)
バージョン 1.0.0-alpha08
2020 年 12 月 2 日
androidx.compose.material:material:1.0.0-alpha08
、androidx.compose.material:material-icons-core:1.0.0-alpha08
、androidx.compose.material:material-icons-extended:1.0.0-alpha08
がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
- MaterialTheme は、選択ハンドルと選択背景に正しい色を設定するようになりました。非マテリアル アプリでは、AmbientTextSelectionColors を手動で使用して、選択用の色をカスタマイズできます。(I1e6f4、b/139320372、b/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 行になり、水平方向にスクロール可能になります。(I57004、b/168187755)
バグの修正
- セマンティクス アクション Dismiss を追加しました。(I2b706)
- DrawModifier API を androidx.compose.ui パッケージから androidx.compose.ui.draw パッケージに移動しました。非推奨となった API から現在の API への移行に役立つ型エイリアス / ヘルパー メソッドを含む DrawModifierDeprecated.kt ファイルを作成しました。(Id6044、b/173834241)
- Modifier.drawLayer の名前を Modifier.graphicsLayer に変更しました。また、API のフィードバックに従って、関連するクラスを GraphicsLayer に更新しました。(I0bd29、b/173834241)
- SubcomposeLayout 宣言から
<T>
が削除されました。現在は、タイプを指定せずにこれを使用できます。(Ib60c8) - Modifier.scale API / Modifier.rotate API を drawLayer 用のコンビニエンス API として追加しました。
Modifier.drawOpacity
の名前をModifier.alpha
に変更しました。Modifier.drawShadow
の名前をModifier.shadow
に変更しました。(I264ca、b/173208140)
- Box のアライメント パラメータの名前が contentAlignment に変更されました。(I2c957)
- offsetPx 修飾子の名前が offset に変更されました。現在は、State ではなくラムダ パラメータを取得します。(Ic3021、b/173594846)
- SweepGradientShader API と SweepGradientBrush API を導入しました。(Ia22c1)
- コンポーズ可能な関数に Modifier パラメータの lint チェックを追加しました。この lint チェックでは、パラメータの名前、戻り値の型、デフォルト値、順序が Compose のガイドラインに従っているかどうかが確認されます。(If493b)
- TextFieldValue API の更新
- TextFieldValue.composition を読み取り専用にしました
- 無効な選択範囲に対してスローされる例外を削除しました。(I4a675、b/172239032)
- 新しい
Modifier.drawLayer()
オーバーロードを追加しました。これは、新しい GraphicsLayerScope でラムダブロックを受け取ります。そこでは、状態の変化が生じたときに再コンポジションと再レイアウトをスキップできるようにレイヤ パラメータを定義します。DrawLayerModifier は、そのロジックを LayoutModifier のplaceable.placeWithLayer()
メソッドに移動するための準備として、内部に隠蔽されました。(I15e9f、b/173030831) Ambient
という接尾辞を持つ Ambient が非推奨になり、その他の Ambient と Compose API のガイドラインに沿って、Ambient という接頭辞を持つ新しいプロパティに置き換えられました。(I33440)- Modifier ファクトリが、
@Composable
とマークされているのではなく、androidx.compose.ui.composed {}
を内部的に使用していることを確認する lint チェックを追加しました。(I3c4bc) - セマンティクス引数 mergeAllDescendants の名前が mergeDescendants に変更されました。(Ib6250)
- テストの時間制御(TestAnimationClock とその使用方法)が試験運用版になりました(I6ef86、b/171378521)
- 古い ui-test モジュールとそのスタブを削除しました。(I3a7cb)
- 他の単位との整合性を図るため、TextUnit.Inherit の名前が TextUnit.Unspecified に変更されました。(Ifce19)
- Alignment インターフェースが更新され、機能するようになりました。(I46a07、b/172311734)
- LayoutIdParentData について、id が layoutId という名前に変更されました。Measurable.id が Measure.layoutId という名前に変更されました。(Iadbcb、b/172449643)
バージョン 1.0.0-alpha07
2020 年 11 月 11 日
androidx.compose.material:material:1.0.0-alpha07
、androidx.compose.material:material-icons-core:1.0.0-alpha07
、androidx.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 を置き換えることができます。(Idf03e、b/159017896) - androidx.compose.material.AmbientContentColor を追加して、androidx.compose.foundation.AmbientContentColor を置き換えました。(I84f7b、b/172067770)
- androidx.compose.material.Text を追加し、テーマ設定可能な高レベルの Text コンポーネントとして androidx.compose.foundation.Text を置き換えました。テーマの色やテキスト スタイルを利用しない基本的なテキスト コンポーネントについては、BasicText を使用します。(Ie6ae0)
- maxLines を TextFields に追加しました。(Ib2a5b)
- KeyboardOptions を受け入れるように TextFields を更新しました。(Ida7f3)
- 高度オーバーレイの計算時に Surface で絶対(合計)高度が使用されるようになりました。そのため、別の Surface にネストされている Surface では、組み合わせた高度を使用してオーバーレイの描画が行われます。(I7bd2b、b/171031040)
バグの修正
captureToBitmap
をcaptureToImage
に移動しました。(I86385)- 基本の AmbientTextStyle、ProvideTextStyle、AmbientContentColor が非推奨になりました。代わりに、マテリアル ライブラリにある新バージョンを使用してください。マテリアル以外のアプリの場合は、独自のコンポーネントで使用できる、独自のデザイン システム固有のテーマ設定アンビエントを代わりに作成する必要があります。(I74acc、b/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 による色合い調整を無視しようとすると、透明色で色合い調整され、最終的に何もレンダリングされませんでした。(I049e2、b/171624632)
- relativePaddingFrom の名前が paddingFrom に変更されました。レイアウト境界からテキスト ベースラインまでの距離を指定する際に便利なように、paddingFromBaseline 修飾子が追加されました。(I0440a、b/170633813)
- SideEffect API と DisposableEffect API との整合性を持たせるために、LaunchedTask の名前が LaunchedEffect に変更されました。ベスト プラクティスを促進するために、サブジェクト パラメータのない LaunchedEffect は許可されません。(Ifd3d4)
- MeasureResult を MeasureScope の外に移動しました。(Ibf96d、b/171184002)
- いくつかのレイアウト関連シンボルを androidx.compose.ui から androidx.compose.layout.ui に移動しました。(I0fa98、b/170475424)
バージョン 1.0.0-alpha06
2020 年 10 月 28 日
androidx.compose.material:material:1.0.0-alpha06
、androidx.compose.material:material-icons-core:1.0.0-alpha06
、androidx.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() を手動で設定してください。(I70417、b/170623932)
- コンポーザブル API がコンポジション間でデータを保持するために「remember」を内部的に利用していることをわかりやすく示すために、VectorPainter のサポートが終了し、rememberVectorPainter に置き換えられました。(Ifda43)
- ComposeTestRule で遷移が有効になりました。ComposeTestRule から、カーソルの点滅を有効にするオプションを削除しました。(If0de3)
- 単一行のキーボード オプションを CoreTextField に追加しました(I72e6d)
- Compose 全体での使用方法をわかりやすく表現するために、Radius API の名前を CornerRadius に変更しました。負のコーナー半径が 0 に固定されることを示すようにドキュメントを更新しました。(I130c7、b/168762961)
- DrawScope と ContentDrawScope を、抽象クラスではなくインターフェースにリファクタリングしました
- DrawScope の CanvasDrawScope 実装を作成しました
- 代わりに CanvasScope を使用するように、DrawScope の実装をリファクタリングしました
- DrawScope の依存関係をラップする DrawContext を作成しました。
- DrawScope の非推奨メソッドを削除しました。(I56f5e)
- Box がインライン関数になりました。(Ibce0c、b/155056091)
バージョン 1.0.0-alpha05
2020 年 10 月 14 日
androidx.compose.material:material:1.0.0-alpha05
、androidx.compose.material:material-icons-core:1.0.0-alpha05
、androidx.compose.material:material-icons-extended:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
API の変更
- ポップアップとダイアログが親ウィンドウから FLAG_SECURE を継承するようになりました。また、これを明示的に設定するためのオプションが追加されました。(I64966、b/143778148、b/143778149)
- Modifier.swipeable で、状態のしきい値としてデフォルトで 56.dp が設定されるようになりました。(Iab825、b/168610267)
- ScaffoldState で @Stable. drawerGesturesEnabled とマークされているすべてのスキャフォールド状態を、Scaffold 自体に移動しました。(I36645、b/168297016)
- Scaffold のラムダ パラメータから null 許容型を削除しました。特定のパラメータにコンテンツがないことを表すには emptyContent() を使用できます。(I2b318、b/157633857、b/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 という名前に変更されました(I97611、b/169797763)
- TextOverflow.None が導入されました。オーバーフローが None の場合、Text はそれ以上オーバーフローを処理せず、実際のサイズを LayoutNode に報告するようになりました(I175c9、b/158830170)
- Compose API ガイドラインに合わせて launchInComposition が LaunchedTask という名前に変更されました。(I99a8e)
- OnPositionedModifier が OnGloballyPositionedModifier という名前に、onPositioned() が onGloballyPositioned() という名前に変更されました。(I587e8、b/169083903)
バージョン 1.0.0-alpha04
2020 年 10 月 1 日
androidx.compose.material:material:1.0.0-alpha04
、androidx.compose.material:material-icons-core:1.0.0-alpha04
、androidx.compose.material:material-icons-extended:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
- ステートフル マテリアル コンポーネントで InteractionState パラメータを公開しました。これにより、状態のホイスティング、読み取りまたは制御が可能になりました。(Iaca5f、b/168025711、b/167164434)
- RadioButton と TriStateCheckbox の
*color
パラメータを変更しました。これにより、各状態で使用する色を完全にカスタマイズし、必要に応じて状態間での色のアニメーション化方法を変更できるようになりました。詳細については、CheckboxConstants と RadioButtonConstants の新しい animateDefault* 色関数をご覧ください。(I1c532) - rememberBackdropState の名前を rememberBackdropScaffoldState に変更し、アニメーション クロックにパラメータを追加しました。BackdropScaffold のパラメータ backdropScaffoldState の名前を scaffoldState に変更しました。BackdropConstants の名前を BackdropScaffoldConstants に変更しました。(Ib644d)
- 試験運用版の BottomSheetScaffold コンポーネントを追加しました。(Ie02f0、b/148996320)
- 試験運用版の ModalBottomSheetLayout コンポーネントを追加しました。(Ic209e、b/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 拡張関数をプロパティに移行しました。
- (I8f5c7、b/168762961)
- foundation.Box は非推奨になりました。代わりに foundation.layout.Box を使用してください。(Ie5950、b/167680279)
- Stack が Box に名前変更されました。compose.foundation.layout にある新しい Box を優先して、既存の Box は非推奨になります。Box の子が複数ある場合、新しい Box は子を互いに重ね合わせるように動作します。これは、Column と同じように動作していた以前の Box とは異なります。(I94893、b/167680279)
- Box 装飾パラメータが非推奨になりました。Box に装飾やパディングを付ける場合は、代わりに修飾子を使用します。(Modifier.background、Modifier.border、Modifier.padding)(Ibae92、b/167680279)
- グラフィック 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 を非推奨としました。
- (If086a、b/167737376)
- レイアウト スコープのコンテンツ(RowScope の alignWithSiblings など)を静的にインポートできないようにしました。代わりに明示的なスコープ(
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
)を使用してください。(I216be、b/166760797)
バージョン 1.0.0-alpha03
2020 年 9 月 16 日
androidx.compose.material:material:1.0.0-alpha03
、androidx.compose.material:material-icons-core:1.0.0-alpha03
、androidx.compose.material:material-icons-extended:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
BottomNavigationItem
のonSelect
パラメータの名前をonClick
に変更しました(I91925、b/161809324)- BottomNavigationItem と Tab に InteractionState パラメータが追加されたことで、この状態を掲げてさまざまな状態でコンポーネントの外観を調整できるようになりました。(Ia3e9e、b/168025711)
- ボタンから
disabledBackgroundColor
パラメータとdisabledContentColor
パラメータを削除しました。代わりに、ButtonConstants 内の新しいデフォルトの色関数を使用してください。すでに contentColor または backgroundColor を明示的に設定している場合は、これらのデフォルトの関数を使用して一部またはすべてのパラメータをカスタマイズし、enabled と disabled の両方の状態に対する色を上書きしないようにしてください。(If9b52) - Textfield の背景色で、透明度のアルファが暗黙的に適用されなくなりました。代わりに、backgroundColor パラメータで指定した色が直接適用されます。(Iecee9、b/167951441)
- InnerPadding の名前が PaddingValues に変更されました。(I195f1、b/167389171)
Modifier.swipeable
のパラメータresistanceFactorAtMin
とresistanceFactorAtMax
が単一の resistance パラメータに置き換えられました。SwipeableConstants
に新しいdefaultResistanceConfig
メソッドが追加されました。(I54238)- Button と FloatingActionButton にステートフルなエレベーションのサポートを追加しました。デフォルトの状態と押下状態の間でエレベーションがアニメーション化するようになりました。状態間のエレベーションをカスタマイズするには、すべてのケースで一定の Dp 値を設定する代わりに
ButtonConstants.defaultAnimatedElevation()
とFloatingActionButtonConstants.defaultAnimatedElevation()
を使用します。(I37925) - ラベルが TextField と OutlinedTextField 内の省略可能なパラメータになりました。(I267f6、b/162234081)
バグの修正
onNode
やwaitForIdle
などのグローバル テスト関数は非推奨になりしました。ComposeTestRule で定義されている新しい同等の関数に移行してください。(I7f45a)- DpConstraints とそれを使用する API が非推奨になりました。(I90cdb、b/167389835)
- widthIn のパラメータ minWidth と maxWidth の名前が、min と max に変更されました。preferredWidthIn、heightIn、preferredHeightIn も同様です。(I0e5e1, b/167389544)
- スクロールの前後のセマンティクス アクションを削除しました。AccessibilityRangeInfo に steps を追加しました。(Ia47b0)
- レイアウト API の gravity の用法で、名前が align または alignment に一貫して変更されました。(I2421a、b/164077038)
- 現在のグローバル メソッドが非推奨になるため、onNode などのグローバル メソッドが ComposeTestRule に追加されました。(Ieae36)
createAndroidComposeRule
とAndroidInputDispatcher
をandroidx.ui.test.android
からandroidx.ui.test
に移動しました。(Idef08、b/164060572)
バージョン 1.0.0-alpha02
2020 年 9 月 2 日
androidx.compose.material:material:1.0.0-alpha02
、androidx.compose.material:material-icons-core:1.0.0-alpha02
、androidx.compose.material:material-icons-extended:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- 試験運用版の BackgroundsScaffold コンポーネントを追加しました。(Iad908)
バグの修正
- Matrix4 が Matrix に変更されました。vectormas パッケージの他のすべての部分が削除されました。(Ibd665、b/160140398)
バージョン 1.0.0-alpha01
2020 年 8 月 26 日
androidx.compose.material:material:1.0.0-alpha01
、androidx.compose.material:material-icons-core:1.0.0-alpha01
、androidx.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-dev17
、androidx.compose.material:material-icons-core:0.1.0-dev17
、androidx.compose.material:material-icons-extended:0.1.0-dev17
がリリースされました。バージョン 0.1.0-dev17 に含まれる commit については、こちらをご覧ください。
API の変更
- 以前に非推奨になった RadioGroup と RadioGroupItems が削除されました。代わりに Row と RadioBotton を使用してください。(I381b7、b/163806637)
- TextField から onFocusChanged コールバックを削除しました。代わりに Modifier.focusObserver を使用してください。(I51089、b/161297615)
- Modifier.drawBorder が非推奨になりました。代わりに Modifier.border を使用してください。Border データクラスは BorderStroke に置き換えられました。(I4257d、b/158160576)
- SwipeableState 内の一部のプロパティの名前を変更しました(swipeTarget -> targetValue、swipeProgress -> progress、swipeDirection -> direction)。SwipeableState を作成するための rememberSwipeableState 関数を追加しました。(I2fc9c、b/163129614、b/163132293)
- 配置と適切なキューイングに関する Snackbar のサポートを追加しました。
SnackbarHostState.showSnackbar
suspend 関数を介してアクセスできます。加えて次の点にもご注意ください。- SnackbarHost コンポーネントが追加されました。このコンポーネントは、状態に基づいて Snackbar をホストし、スナックバー間の遷移を担当します。
- SnackbarHostState が追加されたため、スナックバーやスナックバーのホストを制御して、ScaffoldState から分離できるようになりました。この状態には
scaffoldState.snackbarHostState
からもアクセスできます。 - snackbarHostState とスナックバー自体で共通のインターフェースをサポートするため、スナックバーのオーバーロードが追加されました。(I79aaa)
- IconButton に有効なパラメータを追加し、IconToggleButton でパラメータを並べ替えました。(I0a941、b/161809385、b/161807956)
- 文字列ベースの API を持つ ListItem のバージョンが削除されました。代わりにスロット バージョンを使用してください。(Ib8f57、b/161804681)
- 非推奨になった FilledTextField コンポーネントを削除しました。代わりに TextField を使用して、塗りつぶしテキスト フィールドのマテリアル デザイン実装を取得してください。(I5e889)
- AlertDialog はボタンに FlowRow を使用するようになりました。(I00ec1、b/161809319、b/143682374)
- 境界を越えてスワイプしたときの抵抗量を変更するためのパラメータを Modifier.swipeable に追加しました。[min/max]Value パラメータを削除しました。(I93d98)
- LinearProgressIndicator に backgroundColor パラメータを追加し、CircularProgressIndicator から内部パディングを削除しました。新しい ProgressIndicatorConstants.DefaultProgressAnimationSpec を追加しました。このプロパティは、値間の進捗をアニメーション化するときにデフォルトの AnimationSpec として使用できます。(If38b5、b/161809914、b/161804677)
- Modifier.swipeable に省略可能なパラメータ velocityThreshold を追加しました。(I698ba)
- bottomBarSize、fabSize などが ScaffoldState で使用できなくなりました。代わりに、サイズを把握したいコンポーネントで Modifier.onPosition を使用してください。contentColor および Modifier パラメータが Scaffold に追加されました。(Ic6f7b、b/161811485、b/157174382)
- 他の API との一貫性を保つため、Tab の一部のパラメータの名前を変更し、並べ替えました。(Ia2d12、b/161807532)
- TabRow を TabRow と ScrollableTabRow に分割し、TabRow から isScrollable を削除しました。また、ScrollableTabRow で edgePadding を公開します。これにより、タブの前後の空きスペースを制御できるようになります。(I583e8、b/161809544)
TabRow
オブジェクトが削除され、TabConstants に置き換えられました。TabRow.TabPosition をトップレベルに移動し(TabPosition)、IndicatorContainer の名前をindicator
に変更しました。更新された API の使用方法とデフォルトに関する詳細情報については、サンプルとドキュメントをご覧ください。(I54d45、b/161809544)- Modifier.swipeable のしきい値パラメータが調整されました。(タイプ T の)状態のペアを取得し、それらの間のしきい値を ThresholdConfig の形式で返します。SwipeToDismiss にパラメータ dismissThresholds を追加しました。これはラムダ (DismissDirection) -> ThresholdConfig です。(Ie1080)
- 詳細なカスタマイズができるように、スライダーの色を増やしました。(I73e64、b/161810475)
- カードの色パラメータが backgroundColor に変更されました。(I01fc1、b/161809546)
- Snackbar にカスタマイズ可能な背景色とコンテンツ色が導入されました。(I238f2、b/161804381)
- modifier、backgroundColor、contentColor、scrimColor の各カスタマイズ パラメータが Drawers に追加されました。(I23655、b/161804378)
- 明確化のため、
state { ... }
composable を非推奨にし、remember { mutableStateOf(...) }
の明示的な呼び出しに置き換えました。これにより、状態管理の API サーフェス全般とコンセプトの数が縮小され、クラス プロパティ委任のby mutableStateOf()
パターンと一致するようになります。(Ia5727) - ボタンのパディング パラメータが contentPadding に名前変更されました。(Id252e、b/161809394)
- 試験的なマテリアル コンポーネント SwipeToDismiss を追加しました。(I129e5)
バグの修正
onChildPositioned
とOnChildPositionedModifier
が削除されました。 代わりに子レイアウトでonPositioned
とOnPositionedModifier
を使用する必要があります。(I4522e、b/162109766)- SemanticsPropertyKey に mergePolicy ラムダを追加しました。これを使用して、mergeAllDescendants セマンティクスのマージに関するカスタム ポリシーを定義できます。デフォルトのポリシーでは、すでに存在する場合は親の値が使用され、それ以外の場合は子の値が使用されます。(Iaf6c4、b/161979921)
- IntSize がインライン クラスになりました。(I2bf42)
PlacementScope.placeAbsolute()
の名前がPlacementScope.place()
に変更され、以前のPlacementScope.place()
の名前がPlacementScope.placeRelative()
に変更されました。その結果、PlacementScope.place()
メソッドは、右から左(RTL)へのコンテキストで、自動的に位置をミラーリングしなくなります。必要な場合は、代わりにPlacementScope.placeRelative()
を使用してください。(I873ac、b/162916675)- PxBounds を非推奨にして Rect に置き換えました。PxBounds のすべての使用を更新して Rect に置き換え、移行に役立つ適切な非推奨およびアノテーションへの置き換えを追加しました。(I37038、b/162627058)
- compose の命名パターンに合わせて RRect を RoundRect に名前変更しました。RRect に類似する関数コンストラクタを作成し、RRect 関数コンストラクタを非推奨にしました。(I5d325)
バージョン 0.1.0-dev16
2020 年 8 月 5 日
androidx.compose.material:material:0.1.0-dev16
、androidx.compose.material:material-icons-core:0.1.0-dev16
、androidx.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 に変更しました。(I9e976、b/161812111)
- BottomNavigationItem の
text
パラメータをlabel
に、onSelected
をonSelect
に、activeColor
をselectedContentColor
に、inactiveColor
をunselectedContentColor
に名前変更し、ガイドラインに一致するようにパラメータの順序を更新しました。(Icb605、b/161809324) Modifier.stateDraggable
は全面的に改良され、Modifier.swipeable に名前変更されました。新しく SwipeableState クラスが導入され、DrawerState と BottomDrawerState が SwipeableState クラスを継承するようにリファクタリングされました。[Modal/Bottom]DrawerLayout が onStateChange パラメータを受け取らなくなりました。(I72332、b/148023068)- foundation.shape.corner パッケージが foundation.share にフラット化されました。(I46491、b/161887429)
- ExperimentalMaterialApi アノテーションを追加しました。RippleTheme は Experimental としてマークされました。(Ic5fa0、b/161784800)
- material の FilledTextField を TextField に、foundation の TextField を BaseTextField に名前変更し、シンプルで望ましい API を簡単に見つけて使用できるようにしました。(Ia6242、b/155482676)
バグの修正
- OnChildPositioned が非推奨になりました。代わりに、OnPositioned を子で使用してください。(I87f95、b/162109766)
- 広範な API の修正に対応しました。(I077bc)
- 未使用の OffsetBase インターフェースを削除しました。
- 一貫性のある API サーフェスを持つように Offset クラスと IntOffset クラスを調整しました。
- Offset API に合わせて、IntOffset.Origin を IntOffset.Zero に名前変更しました。
- ユーザーが独自の Canvas インスタンスを作成できるように、Canvas インターフェースから nativeCanvas メソッドを削除しました。
- lateinit の代わりに非 null パラメータとなり、フィールドの非 null 可能性が確保されるように DrawScope をリファクタリングするため、スタブ EmptyCanvas クラスを作成しました。
- ClipOp 列挙型の名前をパスカルケースに変更しました。
- FilterQuality 列挙型の名前をパスカルケースに変更しました。
- StrokeJoin 列挙型の名前をパスカルケースに変更しました。
- PointMode 列挙型の名前をパスカルケースに変更しました。
- PaintingStyle 列挙型の名前をパスカルケースに変更しました。
- PathFillType 列挙型の名前をパスカルケースに変更しました。
- StrokeCap 列挙型の名前をパスカルケースに変更しました。
- DrawCache の実装が更新され、lateinit パラメータを使用しなくなりました。
- DrawScope が更新され、fillPaint および strokePaint 内部パラメータの遅延委任を使用しなくなりました。
- オーバーヘッドを削減するため、Box の使用を回避するように Image composable を更新しました。
- Outline クラスを更新して @Immutable アノテーションを追加しました。
- PathNode を更新して、各パス手順に @Immutable アノテーションを追加しました。
- Vector サブコンポジションを更新し、等価性に関する冗長な条件付きチェックを削除しました。Compose はすでにこの処理に対応しているためです。
- Rect コンパニオン コンストラクタ メソッドが非推奨になり、関数コンストラクタに置き換えられました。
- Brush のクラスと関数コンストラクタを @Immutable および @Stable API で更新しました。
- PascalCase となるように VertexMode 列挙型を更新しました。
- DrawScope selectPaint メソッドを更新し、ペイントでストローク パラメータが変更されている場合は、条件付きで上書きできるようにしました。
- Size を更新して API の分解を追加し、UnspecifiedSize を Unspecified に名前変更して、未使用のメソッドを削除しました。
- ダイアログを UI に移動しました。(I47fa6)
SemanticsNodeInteraction.performPartialGesture
を削除しました。代わりにSemanticsNodeInteraction.performGesture
を使用してください(Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
の名前をSemanticsNodeInteraction.getUnclippedBoundsInRoot()
に変更しました。(Icafdf、b/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
と書いてチェーンを分断し可読性を下げることが防止されます。(Iedd58、b/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-dev15
、androidx.compose.material:material-icons-core:0.1.0-dev15
、androidx.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 } ) }
(I409e8、b/152050010、b/146362815、b/146342522、b/143413369、b/135715219、b/143263925、b/139653744)
テキスト フィールド内の onFocusChange コールバックの名前を onFocusChanged に変更しました。(Ida4a1)
アンカー間のしきい値を指定する stateDraggable のしきい値パラメータを追加しました。これは、下部ドロワーで 56 dp のしきい値の設定に使用されていました。また、BottomDrawerLayout は別個の BottomDrawerState 列挙を使用するようになりました。(I533fa)
非推奨になった Modifier.ripple を削除しました。clickable はデフォルト インジケーションとしてリップルを使用するようになりました(アプリ内で MaterialTheme {} を設定している場合)。そのため、ほとんどのケースでは clickable を使用するだけでリップル インジケーションを無料で利用できます。リップルの色 / サイズ / 境界パラメータをカスタマイズする必要がある場合は、RippleIndication を手動で作成して、インジケーション パラメータとして clickable に渡します。(I663b2、b/155375067)
非推奨になった FilledTextField composable のオーバーライドを削除しました。(I7f8f8)
Button オブジェクト(Button 関数で使用されるデフォルトを含む)の名前を ButtonConstants に変更しました。(I7c5f7、b/159687878)
Button のコンテンツ スロットが Row として動作するようになりました(テキスト付きのアイコンが必要な場合に有用です。Button の記述方法に関するサンプルをご覧ください)。(I0ff10、b/158677863)
RadioGroup と RadioGroupItem が非推奨になりました。設計に合わせて radioButton の適切なセットが選択されるようにするには、Modifier.selectable、Row、Column を指定して Box を使用してください。(I7f5cf、b/149528535)
Material Outlined Textfield を追加しました。(I1a518)
androidx.ui.foundation.TextFieldValue と androidx.ui.input.EditorValue が非推奨になりました。この型を使用する TextField、FilledTextField、CoreTextField の各 composable も非推奨になりました。代わりに androidx.ui.input.TextFieldValue を使用してください。(I4066d、b/155211005)
TabRow.TabPosition には(IntPx ではなく)Dp の位置が含まれるようになりました。(I34a07、b/158577776)
IntPx の使用を Int に置き換えました。IntPxPosition を IntOffset に置き換えました。IntPxSize を IntSize に置き換えました。(Ib7b44)
サイズ設定情報を示す際に使用するクラスの数を整理統合するため、PxSize ではなく Size クラスの使用を標準化しました。これにより、インライン クラスは long 値を利用して、float 値で表される幅と高さを示す 2 つの float 値をパックできるようになります。(Ic0191)
Modifier.ripple のサポートが終了しました。clickable はデフォルト インジケーションとしてリップルを使用するようになりました(アプリ内で MaterialTheme {} を設定している場合)。そのため、ほとんどのケースでは clickable を使用するだけでリップル インジケーションを無料で利用できます。リップルの色 / サイズ / 境界パラメータをカスタマイズする必要がある場合は、RippleIndication を手動で作成して、インジケーション パラメータとして clickable に渡します。(I101cd、b/155375067)
Scaffold API が改良されました。カスタマイズ性を高めるため、一部のパラメータの名前の変更や、新しいパラメータの追加が行われています。Fab、TopBar、BottomBar のサイズをクエリするためのゲッターが追加されています。(I0e7ce)
マテリアル デザイン メニューの実装である ui-material に DropdownMenu コンポーネントを追加しました。(I9bb3d)
SoftwareKeyboardController を使用して、ソフトウェア キーボードの表示 / 非表示を手動で切り替えられるようになりました。(Ifb9d6、b/155427736)
Modifier.indication が基盤パッケージに追加されました。これを使用して、操作可能なカスタム要素に押下、ドラッグ、その他のインジケーションを表示できます。(I8425f、b/155287131)
CanvasScope の実装を整理統合し、DrawScope と ContentDrawScope のみとしました。CanvasScope の名前を DrawScope に変更しました。DrawScope を更新して Density インターフェースを実装し、LayoutDirection を提供しました。ContentDrawScope の DrawScope サブクラスを削除しました。Painter と PainterModifier が更新され、RTL プロパティを自身で維持しなくなりました。これは DrawScope ですでに提供されているため、手動で提供する必要はありません。(I1798e)
Emphasis.emphasize() の名前を Emphasis.applyEmphasis() に変更しました。(Iceebe)
無効化されたボタンが視覚面でマテリアル デザイン仕様に従うようになりました。(I47dcb、b/155076924)
FilledTextField が IME アクション、視覚的変換、キーボード タイプをサポートするようになりました。(I1f9cf、b/155075201)
ストローク サイズをカスタマイズできるように、CircularProgressIndicator に strokeWidth パラメータが追加されました。LinearProgressIndicator のストローク サイズ(高さ)を変更するには、Modifier.preferredHeight() などのサイズ修飾子を使用します。(Icea16、b/154919081)
ストローク サイズをカスタマイズできるように、CircularProgressIndicator に strokeWidth パラメータが追加されました。LinearProgressIndicator のストローク サイズ(高さ)を変更するには、Modifier.preferredHeight() などのサイズ修飾子を使用します。(Icea16、b/154919081)
FilledTextField の末尾のアイコンと先頭のアイコンを操作し、エラー状態を処理するスロット API を追加しました。(Ic12e0)
FAB と拡張 FAB のデフォルトの色が MaterialTheme.colors.secondary に変更されました。(I3b9b9、b/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())
です。(Ie5200、b/151331852、b/150060763)Surface と Card が androidx.ui.material.surface から androidx.ui.material に移動されました。(I88a6d、b/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)
text
とicon
のラムダを受け入れるように Tab API をリファクタリングしました。(Ia057e)BottomNavigation コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I731a0)
Icon、IconButton、IconToggleButton を追加し、AppBarIcon を削除しました。AppBarIcon の既存の用法を IconButton に直接置き換えることにより、正しいタッチ ターゲットを追加できます。使用法についてはサンプルをご覧ください。また、これらのコンポーネントで直接使用できる、マテリアル アイコンのアイコンをご覧ください。(I96849)
ButtonStyle を別の関数に置き換え、テキスト(文字列)オーバーロードを削除しました。使用方法については、更新済みのサンプルをご覧ください。(If63ab、b/146478620、b/146482131)
Border
修飾子の名前をDrawBorder
に変更しました。(I8ffcc)LayoutCoordinates に位置プロパティがなくなりました。LayoutModifier、回転、スケーリングを考慮すると、位置プロパティは妥当ではありません。代わりに、デベロッパーは parentCoordinates と childToLocal() を使用して、ある LayoutCoordinate から別の LayoutCoordinate への変換を計算する必要があります。
LayoutCoordinates は、サイズ プロパティに PxSize ではなく IntPxSize を使用します。レイアウトでは整数のピクセルサイズを使用するため、すべてのレイアウト サイズで浮動小数点値ではなく整数を使用する必要があります。(I9367b)
アンビエント API を大幅に変更しました。詳細については、ログと
Ambient<T>
のドキュメントをご覧ください。(I4c7ee、b/143769776)Scaffold マテリアル コンポーネントが追加されました。Scaffold は、基本的なマテリアル デザイン視覚レイアウト構造を実装します。(I7731b)
DrawBorder が Border 修飾子に置き換えられました。(Id335a)
バグの修正
- FocusModifier が非推奨になり、Modifier.focus、Modifier.focusRequester、Modifier.focusObserver に置き換えられました。FocusState と FocusDetailedState が非推奨になり、FocusState2 に置き換えられました。(I46919、b/160822875、b/160922136)
- VerticalScroller と HoriziontalScroller が非推奨になりました。Column / Row の動作とパラメータの組み込みエクスペリエンスをサポートするには、ScrollableColumn と ScrollableRow を使用するか、独自の要素で Modifier.verticalScroll と Modifier.horizontalScroll を使用してください。同様に、ScrollerPosition が非推奨になり、ScrollState に置き換えられました。(I400ce、b/157225838、b/149460415、b/154105299)
- Modifier.draggable API と Modifier.scrollable API が改訂されました。DragDirection が削除され、Orientation に置き換えられました。scrollable に必要な状態が簡素化されました。ScrollableState の名前が ScrollableController に変更されました。(Iab63c、b/149460415)
runOnIdleCompose
の名前がrunOnIdle
に変更されました。(I83607)- 単一値のセマンティクス プロパティで呼び出しスタイルが使用されるようになりました。たとえば、「semantics { hidden = true }」は、現在は「semantics { hidden() }」として記述されます。(Ic1afd、b/145951226、b/145955412)
- いくつかのテスト API の名前がより直感的にわかりやすいものになりました。findXYZ API という名前はすべて onNodeXYZ に変更されました。doXYZ API という名前はすべて performXYZ に変更されました。(I7f164)
- Transition API が変更され、子に TransitionState を渡すのでなく、TransitionState を返すようになりました。これにより、この API と animate() API の一貫性が向上します。(I24e38)
- レイアウトからの整数ピクセル境界を表す IntBounds ユニットクラスが追加されました。PopupPositionProvider の API が更新され、これを使用するようになりました。(I0d8d0、b/159596546)
- 新しいオプションのフラグ useUnmergedTree がテスト ファインダーに追加されました。(I2ce48)
- 古いサイズテスト API を削除しました。(Iba0a0)
- NativeShader Expect クラスをラップする Shader インライン クラスを削除しました。NativeShader の名前を Shader に変更しました。ラップされた Shader インライン クラスは、API サーフェスに価値のある機能を何も付加しておらず、しかもインライン クラスでした。そのため、NativeShader クラスを直接使用してください。(I25e4d)
- ポップアップ、ダイアログ、メニューがコンテキストに応じた MaterialTheme を継承するようになりました。(Ia3665、b/156527485)
- Material の DropdownMenu がスクロール可能になりました。(Ide699)
- Layout() 関数の測定ブロックからレイアウト方向のパラメータを削除しました。ただし、測定スコープ オブジェクトを介してコールバック内でレイアウト方向を使用できます。(Ic7d9d)
- 静的アニメーション仕様のコンセプトを明確化するため、最上位レベルの API で AnimationBuilder ではなく AnimationSpec を使用するようになりました。tween や spring などの AnimationSpec の作成に関するラムダ要件を削除することにより、遷移 DSL を改善しました。代わりに、それらはコンストラクタのパラメータを直接受け取ります。AnimationSpec の使いやすさを全面的に改善し、ビルダーに依存するのではなくコンストラクタを利用するようにしました。KeyFrames と Tween の期間と遅延を Int に変更しました。これにより、(Long と Int の両方をサポートするための)不要な型キャストとメソッドのオーバーロードがなくなります。(Ica0b4)
enabled
が false に設定されている場合、スイッチが無効な状態として表示されるようになりました。(If4624、b/155941869、b/159331694)- Modifier.testTag との混同を避けるため、Modifier.tag の名前が Modifier.layoutId に変更されました。(I995f0)
- Placeable#get(AlignmentLine) から返されるアライメント ラインの Int 位置が非 null になりました。クエリされたアライメント ラインが見つからなかった場合は、AlignmentLine.Unspecified が返されます。(I896c5、b/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 を使用してください。(I35220、b/157642842)
ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I086f4)
ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(Id3434)
ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I97a5a)
DropdownMenuItems に対して onClick が呼び出されない問題を解決しました。(I3998b、b/157673259)
MutuallyExclusiveSetItem が非推奨になりました。代わりに Modifier.selectable を使用してください。(I02b47、b/157642842)
TestTag が非推奨になりました。代わりに Modifier.testTag を使用してください。(If5110、b/157173105)
TextField のカーソルが、点滅アニメーションで表示されるようになりました。(Id10a7)
ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I19d02)
VerticalScroller は、すぐに利用可能な Column を提供するようになりました。HorizontalScroller は、すぐに利用可能な Row を提供するようになりました。(Ieca5d、b/157020670)
ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(Iede0b)
Modifier.semantics の非推奨が解除され、高レベルのコンポーネントでの使用が可能になりました。(I4cfdc)
DrawLayer 修飾子 API が変更されました。outlineShape の名前が shape に変更され、RectangleShape のデフォルト値を持つようになり、null 値非許容型になりました。clipToOutline の名前が clip に変更されました。clipToBounds は、RectangleShape で clip == true を設定するのと同じであるため、削除されました。(I7ef11、b/155075735)
キャンバスを公開するハイレベルの Compose API を更新して、代わりに CanvasScope を公開するようにしました。これにより、ユーザーが独自の Paint オブジェクトを維持管理する必要がなくなります。引き続きキャンバスの利用が必要なユーザーは、drawCanvas 拡張メソッドを使用できます。このメソッドにより、対象のキャンバスに対して Draw コマンドを実行するコールバックが行われます。(I80afd)
AlignmentLineOffset composable が非推奨となりました。代わりに relativePaddingFrom() 修飾子を使用してください。CenterAlignmentLine composable が削除されました。(I60107)
WithConstraints 後置ラムダ API が変更されました。2 つのパラメータに代わってレシーバ スコープが設けられ、constraints と layoutDirection に加えて、Dp 単位で指定する minWidth、maxWidth、minHeight、maxHeight プロパティが用意されました。(I91b9a、b/149979702)
対応する受信制約が指定されていない場合にのみ、ラップされたレイアウトにサイズ制約を設定する defaultMinSizeConstraints レイアウト修飾子を追加しました(最小制約の場合は 0、最大制約の場合は無限大)。(I311ea、b/150460257)
FocusManagerAmbient が削除されました。フォーカスを取得するには、FocusModifier.requestFocus を使用してください。(Ic4826)
Canvas オブジェクトをラップしてステートレスの宣言型描画 API サーフェスを公開する CanvasScope API を作成しました。変換は固有のレシーバ スコープ内に含まれます。また、サイズ設定情報のスコープは対応するインセット境界に設定されます。描画オペレーションを構成するためにコンシューマが独自の Paint 状態オブジェクトを維持する必要はありません。
CanvasScopeSample を追加しました。また、デモアプリを更新して、宣言型グラフィックのデモを追加しました。(Ifd86d)
TextField にカーソルの色のカスタマイズを追加しました。(I6e33f)
TextField で使用される TextFieldValue は、次のように使用すると、アクティビティが再作成されても保持できるようになりました:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce、b/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)になりました。(I20150、b/152417501)
RectangleShape を androidx.ui.foundation.shape.* から androidx.ui.graphics.* に移動しました。(Ia74d5、b/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() メソッドを追加しました。(Ibaced、b/152919067)
runOnIdleCompose
とrunOnUiThread
が ComposeTestRule のメソッドではなくグローバル関数になりました。(Icbe8f)[Mutable] State プロパティ デリゲート演算子が、Kotlin 1.4 のプロパティ デリゲート最適化に対応するため、拡張機能に移動されました。
by state { ... }
またはby mutableStateOf(...)
を引き続き使用するには、呼び出し元でインポートを追加する必要があります。(I5312c)LayoutCoordinates に positionInParent と boundsInParent を追加しました。(Icacdd、b/152735784)
ColoredRect が非推奨になりました。代わりに Box(Modifier.preferredSize(width, height).drawBackground(color)) を使用してください。(I499fa、b/152753731)
LayoutResult の名前を MeasureResult に変更しました。(Id8c68)
レイアウト修飾子を定義する新しい API として LayoutModifier2 を追加し、LayoutModifier を非推奨にしました。(If32ac)
修飾子と演算子を工場出荷時の拡張機能に置き換えました。(I225e4)
Draggable を修飾子に移動しました。(Id9b16、b/151959544)
ParentData composable が非推奨になりました。測定ブロック内で認識するためにレイアウトの子にタグを付ける必要がある場合は、ParentDataModifier インターフェースを実装する修飾子を作成するか、LayoutTag 修飾子を使用してください。(I51368、b/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 を作成しました。(I9af9a、b/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 が置き換えられます。(I7100d、b/150774014)
androidx.compose.ViewComposer が androidx.ui.node.UiComposer に移動され、androidx.compose.Emittable が削除されました。これは ComponentNode と重複していました。androidx.compose.ViewAdapters が削除されました。サポート対象のユースケースではなくなりました。Compose.composeInto が非推奨になりました。代わりに
setContent
またはsetViewContent
を使用してください。Compose.disposeComposition が非推奨になりました。代わりに、setContent
が返すComposition
のdispose
メソッドを使用してください。androidx.compose.Compose.subcomposeInto は androidx.ui.core.subcomposeInto に移動されました。ComponentNode#emitInsertAt の名前が ComponentNode#insertAt に変更されました。ComponentNode#emitRemoveAt の名前が ComponentNode#removeAt に変更されました。ComponentNode#emitMode の名前が ComponentNode#move に変更されました。(Idef00)指定された 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 のネイティブ フリング モーション動作を示すようになりました。(I922af、b/147493715)
Constraints の API サーフェスの改善。(I0fd15)