Wear Compose
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2025 年 7 月 2 日 | 1.4.1 | - | 1.5.0-beta05 | - |
依存関係の宣言
Wear への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.wear.compose:compose-foundation:1.4.1" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material:1.4.1" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.4.1" // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Kotlin
dependencies { implementation("androidx.wear.compose:compose-foundation:1.4.1") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material:1.4.1") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.4.1") // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
Wear Compose バージョン 1.5
バージョン 1.5.0-beta05
2025 年 7 月 2 日
androidx.wear.compose:compose-*:1.5.0-beta05
がリリースされました。バージョン 1.5.0-beta05 には、これらの commit が含まれています。
バグの修正
Modifier.edgeSwipeToDismiss
の使用方法を明確にするため、ドキュメントを更新しました(I78cb5)。- 遅延リストで
SwipeToReveal
を使用すると、複数の表示されたアイテムが表示される可能性があるバグに対処しました(I1d4f6) TransformingLazyColumn
のコンテナの形状が、コンテンツのクリッピングを回避するためにスケーリングされるようになりました。(I9221a)- 時間/分/秒または年/月/日の
TimePicker
ラベルとDatePicker
ラベルに、スクリーン リーダー用の見出しセマンティクスが追加されました(I77d8b) - 不定の
CircularProgressIndicator
でループ間の一時停止を削除しました(Iaf0bb) - アイテムが削除されたときに
TransformingLazyColumn
で発生するアニメーションのバグを修正しました。(I73034) - アイテムが削除されたときの
TransformingLazyColumn
でのアンカー アイテムの処理を修正しました。(I841a8) - 自動中央揃えがオンで、選択(中央揃え)された Picker が変更された場合、
PickerGroup
が Picker を水平方向にアニメーション表示するようになりました。(Ic82c4)
バージョン 1.5.0-beta04
2025 年 6 月 18 日
androidx.wear.compose:compose-*:1.5.0-beta04
がリリースされました。バージョン 1.5.0-beta04 にはこれらの commit が含まれています。
バグの修正
TransformingLazyColumn
のレイアウトのバグを修正しました。画面内に収まるコンテンツが画面の上部から正しく配置されるようになりました(I80115)EdgeButton
を使用してリストの最下部までスクロールしたときに、最下部のアイテムが誤ってスケーリングされるTransformingLazyColumn
の問題を修正しました。レイアウトを復元する際に、スクロールの進行状況が勾配降下法に従うようになりました。(Iea375)TransformingLazyColumn
がバックグラウンド ペインタ内のアイテムの高さを読み取るようになり、カスタムTransformationSpecs
でモーフィングを実装できるようになりました。(I022f0)SwipeToReveal
が、表示されたアクションを垂直方向に正しく中央揃えするようになりました。(I4419b)- 画面上でビューとコンポーズの両方が使用されている場合に、スワイプして閉じる機能が正しく動作しないという
SwipeToReveal
のバグを修正しました。(I5dc0e) - スクロール時に
SwipeToReveal
アクションが垂直方向にオフセットされて描画されるバグを修正しました。(I29444) AlertDialog
、ConfirmationDialog
、OpenOnPhoneDialog
、SwipeToReveal
は、画面サイズの割合として計算されるパディングとサイズを切り上げるようになりました。(I76367)ButtonDefaults.outlinedButtonBorder
が有効/無効の状態の変化に応じてサイズを更新するようになりました(If2ddd)- Pager と
ScreenScaffold
を含む複雑な画面で発生していたEdgeButton
の高さに関するバグを修正しました。(I946e3) - プレースホルダのアニメーションが停止する可能性のある競合状態を修正しました。(I53530)
- Canvas に描画することで、
HorizontalPageIndicator
とVerticalPageIndicator
のパフォーマンスが改善されました。(Ifae1e) - EdgeButton の形状を調整し、アウトラインを構成する省略記号と円の間の移行をスムーズにしました。(I7721e)
- 不必要な再コンポーズによりアニメーションが停止する原因となっていた
LevelIndicator
のバグを修正しました。(I45d08)
バージョン 1.5.0-beta03
2025 年 6 月 4 日
androidx.wear.compose:compose-*:1.5.0-beta03
がリリースされました。バージョン 1.5.0-beta03 には、これらの commit が含まれています。
API の変更
OpenOnPhoneDialog
は TalkBack でメッセージ テキストのみを読み上げ、アイコンのセマンティクスをスキップするようになりました。OpenOnPhoneDialogDefaults
が更新され、icon()
からiconContentDescription
とcontentDescription
パラメータが削除されました。また、ConfirmationDialogDefaults
にSuccessIcon
コンポーザブルとFailureIcon
コンポーザブルの修飾子パラメータが追加されました。(Id2ae2)
バグの修正
SurfaceTransformation
パラメータの効果を適用する順序を変更しました。以前は、Wear Material3 コンポーネントに適用される変換は、背景ペインタ、コンテナ変換、コンテンツ変換の順で行われていました。最初の 2 つが反転され、それらの間に渡された修飾子が適用されるため、コンテナの変換の影響を受けます。これにより、変換パラメータを使用して TLC の要素でプレースホルダのシマー効果を使用するなどのケースが修正されます。(I786cf)RevealState.Saver
は、アクティビティまたはプロセスが再作成されたときにSwipeToReveal
の状態を復元するために使用されるよう追加されました。rememberRevealState
関数は、デフォルトでこの Saver を使用するようになりました。(Ie0ecb)SwipeToReveal
のメイン アクション ボタンとサブアクション ボタンのデフォルトがButtonDefault.Height
になるようにしました(背の高いボタンの最大高まで埋められていたバグを修正しました)。(Ibfba1)- 右スワイプ ジェスチャーが実行されたときに、最後に操作したコンポーネントをリセットするように
SwipeToReveal
を変更しました。(Ia8450) - スワイプの終了位置が、表示アンカーと表示済みアンカーの間で、表示アンカーに近い場合、
SwipeToReveal
はRevealing
状態に落ち着くように変更されました。(If4458) - RTL レイアウトで
ButtonGroup
のコンテンツが適切に反転されるようになりました(Ib378d) AnimatedText
が RTL テキスト方向をサポートするようになりました(I4533c)- 下部のアイテムが削除されたときに
TransformingLazyColumn
がアイテムのサイズを正しく変更するようになりました(Idacab) TransformingLazyColumn
は 1 回の測定パスのみを行うようになり、フレーム時間を短縮することでパフォーマンスが向上しました。(I501a1)
バージョン 1.5.0-beta02
2025 年 5 月 20 日
androidx.wear.compose:compose-*:1.5.0-beta02
がリリースされました。バージョン 1.5.0-beta02 にはこれらの commit が含まれています。
バグの修正
- foundation、material、material3 ライブラリのベースライン プロファイルを更新しました。(I53f06)
TransformingLazyColumn
のバグを修正しました。このバグでは、一番下のアイテムが削除されるとアイテムのサイズが変更されていました。(Idacab)- リストがリストの先頭または末尾で動かなくなる
TransformingLazyColumn
のバグを修正しました。(I49d00) - TalkBack の
OpenOnPhoneDialog
は、アイコンの内容説明ではなく、曲線テキストを読み上げる必要があります。(I4efe8) hasPartiallyRevealedState
が false に設定されている場合にRevealState.currentValue
で誤ったアンカーをレポートするSwipeToReveal
のバグを修正しました。(I9c7cf)SwipeToReveal
の元に戻すボタンがデフォルトでButtonDefaults.Height
になりました。(I1f6c8)- スクリムの描画に Canvas を使用しないようにすることで、
BasicSwipeToDismissBox
のパフォーマンスが改善されました。(I68f2c) - スライダーのユーザー補助のバグを修正しました。更新後に読み上げられる割合が値と一致しないというバグです(I91146)
placeholderShimmer
実装のバグを修正しました。(Iee39bScrollProgress
の計算を 30% 最適化することで、TransformingLazyColumn
のパフォーマンスが向上しました。(I4c4cb)
バージョン 1.5.0-beta01
2025 年 5 月 7 日
androidx.wear.compose:compose-*:1.5.0-beta01
がリリースされました。バージョン 1.5.0-beta01 にはこれらの commit が含まれています。
Wear OS 向け Compose 1.5.0-beta01 では、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。
Wear Compose 1.5.0-beta01 には、Wear Compose Material3 ライブラリが含まれています。このライブラリは、Material 3 Expressive と呼ばれる新しい UI デザイン システムをサポートしています。アプリで新しいビジュアル デザインを採用し、新しいコンポーネントのメリットを享受するために、Material から Material3 にアップグレードすることをおすすめします。
MaterialTheme
: 更新および拡張されたカラーパターン、タイポグラフィ、シェイプを使用して、デザインに深みと多様性をもたらします。- ダイナミック カラー テーマ設定: ウォッチフェイスの色に合わせてアプリのカラーパターンを自動的に生成します。
- 新しいコンポーネントはデフォルトで大画面サイズに自動的に適応
- シェイプ モーフィング -
IconButton
、TextButton
、IconToggleButton
、TextToggleButton
などの丸いボタン コンポーネントは、押されたときやチェックされたときにアニメーション化されるバリエーションをサポートしています。 EdgeButton
- 画面下部に配置するために設計された特別な形状の新しいエッジハグボタン。- スキャフォールディング -
AppScaffold
とScreenScaffold
を導入して、画面の構造をレイアウトし、ScrollIndicator
とTimeText
のアニメーションを調整します。 - ボタン - 柔軟なシングルスロット コンテナと、アイコンとラベル付きのボタン用のマルチスロット バリエーションを備えた、多数のスタジアム型のボタンがサポートされています。切り替えボタンが必要な場合は
CheckboxButton
とSwitchButton
が提供され、RadioButton
は利用可能な選択ボタンです(切り替えボタンと選択ボタンの「分割」バリエーションも提供されます)。 ButtonGroup
- タッチするとシェイプ モーフィングする、表現力豊かなボタンのグループを 1 行で実装します。AlertDialog
バリエーションは、[OK] ボタンと [キャンセル] ボタン、またはEdgeButton
をサポートします。ConfirmationDialog
を使用すると、タイムアウト付きのメッセージを表示できます。成功、失敗、スマートフォンで開くバリエーションの特別なアニメーションをサポートしています。- ピッカー -
TimePicker
とDatePicker
のバリエーションがサポートされています。また、独自のピッカー画面を構築するための Picker コンポーネントとPickerGroup
コンポーネントもサポートされています。 ProgressIndicators
- 円形と線形の進行状況インジケーターがサポートされています(CircularProgressIndicator
にはセグメント化されたバリエーションと不定のバリエーションがあります)。- カード -
TitleCard
を含むさまざまなカード バリエーションが用意されています。TitleCard
は、タイトル、時間、サブタイトル、コンテンツ スロットを含むカードの特定のレイアウトを提供します。TitleCard
に画像背景を設定して、カード内の情報の意味を強調することもできます。 - ページャ -
HorizontalPagerScaffold
、VerticalPagerScaffold
、AnimatedPage
コンポーネントはHorizontalPageIndicator
アニメーションとVerticalPagerIndicator
アニメーションを調整します。Wear Compose Foundation ライブラリでHorizontalPager
とVerticalPager
がリリースされました。 - プレースホルダ - 仮のコンテンツがない場合に、コンポーネントの上にスケルトン形状を描画します。
- スライダーとステッパー - どちらも、ユーザーが値の範囲から選択できるようにします。スライダーはよりコンパクトで、セグメント化できます。一方、ステッパーは通常
StepperLevelIndicator
と組み合わせて使用される全画面コンポーネントです。 SwipeToReveal
- コンポーザブルが右から左にスワイプされたときに、コンポーザブルに追加のアクションを追加するために使用されます。
また、Wear Compose Foundation 1.5.0-beta01 には、次の新しいコンポーネントが含まれています。
TransformingLazyColumn
- スケーリングとモーフィング アニメーションをサポートする、遅延読み込みの縦方向スクロール リスト- 階層型フォーカス グループ - アプリケーション内のコンポーザブルにアノテーションを付け、コンポジションのアクティブな部分を追跡してフォーカスを調整するために使用されます。
- ページャ -
HorizontalPager
コンポーネントとVerticalPager
コンポーネント。Compose Foundation コンポーネントをベースに、パフォーマンスの向上と Wear OS ガイドラインの遵守を目的とした Wear 固有の拡張機能が追加されています。
API の変更
- 階層フォーカス API を更新 -
Modifier.hierarchicalFocus
をModifier.hierarchicalFocusGroup
に変更し、コールバック パラメータを削除しました。FocusRequester
パラメータを含むModifier.hierarchicalFocusRequester
のオーバーロードを削除しました。コンポーネントがアクティブな画面を通知して確認できるように、新しいCompositionLocal
、LocalScreenIsActive
を作成しました。(I5ff7c)。 - Wear Compose Material と Wear Compose Material3 の
SwipeToReveal
API を優先して、Wear Compose Foundation のSwipeToReveal
を非推奨としました。API を引き続き使用するには、Wear Foundation のSwipeToReveal
インポートを Wear Compose Material/ Wear Compose Material3 のインポートに置き換えてください。(Ia147d)。 - Wear Compose Material3 の Foundation への
SwipeToReveal
依存関係が material3 パッケージに移動しました(RevealValue
、RevealDirection
、RevealActionType
、RevealState
、rememberRevealState
など)。デベロッパーは、これらのクラスと関数のインポートをandroidx.wear.compose.foundation
からandroidx.wear.compose.material3
に変更する必要があります。(I640e6)。 - Wear Compose Material3
SwipeToReveal
API を次のように更新しました。SwipeToReveal
コンポーザブルにprimaryAction
、onFullSwipe
、secondaryAction
、undoPrimaryAction
、undoSecondaryAction
、hasPartiallyRevealedState
パラメータを追加しました。RevealState
からpositionalThreshold
とanimationSpec
をカスタマイズする機能を削除しました。RevealState
からlastActionType
、revealThreshold
、幅を削除しました。RevealState
コンストラクタをアンカーの代わりにRevealDirection
を受け入れるように変更しました。createRevealAnchors
、アンカー、bidirectionalAnchors
関数を削除しました。SwipeToRevealScope
関数のprimaryAction
、secondaryAction
、undoPrimaryAction
、undoSecondaryAction
の名前をPrimaryActionButton
、SecondaryActionButton
、UndoActionButton
に変更し、コンポーザブル関数にしました。RevealActionType
を内部としてマークしました。(I885d0)。 SwipeToReveal
API をさらに更新しました。onFullSwipe
をonSwipePrimaryAction
に名前変更しました。hasPartiallyRevealedState
パラメータの使用を示すようにSwipeToRevealNonAnchoredSample
を名前変更しました。デフォルトはボタンのデフォルトの高さであり、より大きな高さは修飾子を使用して設定できるため、actionButtonHeight
を削除しました。SwipeToRevealDefaults
からSmallActionButtonHeight
を削除しました。RevealValue
とRevealDirection
のコンストラクタの value パラメータを非公開にしました。(I465ce)。
バグの修正
ScreenScaffold
のEdgeButton
の処理を修正し、TransformingLazyColumn
アイテムが削除された後、EdgeButton
がアニメーションで所定の位置に移動するようにしました。(I6d366)。- Compose ライブラリでの Wear Compose の依存関係をバージョン 1.8.0 に更新しました。(I2ef3f)。
- 一時的に後退しないように、不確定の
CircularProgressIndicator
の動きを更新しました。(Ieddb1)。 SwipeDismissableNavHost
のバグを修正しました。スワイプして戻った後にフォーカスが正しく切り替わらず、ロータリー入力が失敗する問題を修正しました(これは、予測型「戻る」を使用する API 36 以降が対象です)。(Ieddb1)。- 階層フォーカス API のドキュメントを修正しました(Idf2ff)。
- Button と Card のドキュメントを更新し、
containerPainter
とdisabledContainerPainter
がcontainerColor
とdisabledContainerColor
をオーバーライドする方法を記載しました(I4a453)。 - 前のリリースで
BroadcastReceiver
をワーカー スレッドに移動するTimeText
の変更を元に戻しました。これは、ナビゲーション中に独自のスレッド処理を管理するアプリで問題が発生したためです。(I34d02)。 - Picker のサンプルを更新し、不要な remember 呼び出しを削除して、代わりに Picker で
rememberUpdatedState
を使用して最新のcontentDescription
ラムダ関数を記憶するようにしました。(Icb5b1)。 TimePicker
とDatePicker
のテキスト スタイルを更新し、フォントを変更しても切り捨てが発生しないようにしました。(I26194)。ListHeader
とListSubHeader
で、テキストの配置がそれぞれ中央揃えと左揃えにデフォルト設定されるようになりました。(I78339)。- Foundation と Material のスワイプして表示するサンプルとデモを更新し、カスタム アクセシビリティ アクションを発表しました(カスタム アクションは
SwipeToReveal
コンポーザブル自体ではなく、コンテンツのセマンティクスとして追加する必要があります)。(Ie92a3)。 EdgeButton
コンテンツに設定されるデフォルトのMaxLines
をサイズに応じて更新しました。XS は 1、S と M は 2、L は 3 になりました。(Ie35f6)。- パフォーマンスを向上させるため、オブザーバーが 1 回だけ登録されるように
LocalReduceMotion
を簡素化しました。(Ib1979)。 - パフォーマンスを向上させるため、
ScrollIndicator
の再描画の回数を最小限に抑えました。(Ia7a67)。 TransformingLazyColumn
のバグを修正しました。このバグでは、EdgeButton が最大高さに達したときに、リストの最上部の表示アイテムが正しくスケーリングされませんでした。(I30580)。
バージョン 1.5.0-alpha14
2025 年 4 月 23 日
androidx.wear.compose:compose-*:1.5.0-alpha14
がリリースされました。バージョン 1.5.0-alpha14 にはこれらの commit が含まれています。
API の変更
- Foundation
SwipeToReveal
に対する MaterialSwipeToReveal
の依存関係はすべて、Material パッケージ(RevealValue
、RevealDirection
、RevealActionType
、RevealState
、rememberRevealState
など)に移動されました。デベロッパーは、これらのクラスと関数のインポートをandroidx.wear.compose.foundation
からandroidx.wear.compose.material
に変更する必要があります。(Ib7cb8) HierarchicalFocusCoordinator
の API をコンポーザブルではなく修飾子に変更しました。- 移行に関する注意事項:
HierarchicalFocusCoordinator(function, content)
は、content
または囲みコンポーザブルにModifier.hierarchicalFocus(function())
を追加することで置き換えることができます。ActiveFocusListener { if (it) focusRequester.requestFocus() }
は、Modifier.hierarchicalFocusRequester(focusRequester)
を追加することで置き換えることができますActiveFocusListener
の他のまれな使用では、Modifier.hierarchicalFocus
の新しいパラメータを使用できます。focusRequester(rememberActiveFocusRequester())
はhierarchicalFocusRequester()
に置き換えることができますval focusRequester = rememberActiveFocusRequester()
は、remember { FocusRequester() }
に置き換えてModifier.hierarchicalFocusRequester(focusRequester)
を追加できます。(Ie319a)
バグの修正
- 次のコンポーネントで、スワイプ ジェスチャーが状態の変化をトリガーするために超える必要のある速度のしきい値が引き上げられました。
SwipeToReveal
、BasicSwipeToDismissBox
、SwipeDismissableNavHost
(SwipeDismissableNavHost
は API 35 以下のみ)。(If47bf) - 新しいアイテムが
TransformingLazyColumn
に追加されたときのアニメーションに関する問題を修正しました。(I589b2)
バージョン 1.5.0-alpha13
2025 年 4 月 9 日
androidx.wear.compose:compose-*:1.5.0-alpha13
がリリースされました。バージョン 1.5.0-alpha13 には、これらの commit が含まれています。
API の変更
- Kotlin 2.0 でリリースされたプロジェクトを使用するには、KGP 2.0.0 以降が必要です(Idb6b5)
targetPage
プロパティをPagerState
に追加しました(I4de8b)
バグの修正
- 予測型「戻る」操作中の不要な再コンポーズを防止します。(Iecd6d)
- 現在の値を返すように
ScrollInfoProvider
のisScrollable
プロパティを修正しました。(Icbfb8)
バージョン 1.5.0-alpha12
2025 年 3 月 26 日
androidx.wear.compose:compose-*:1.5.0-alpha12
がリリースされました。バージョン 1.5.0-alpha12 にはこれらの commit が含まれています。
API の変更
- コンポーネントの状態が Covered の場合にのみジェスチャーを無視するよう、
gestureInclusion
のSwipeToReveal
デフォルト実装を改善しました。(I7e3d6) SwipeToReveal
では、bidirectionalGestureInclusion
を関数ではなく val にし、gestureInclusion
のedgeZoneFraction
パラメータに@FloatRange
を追加しました。(Ica7c3)
バグの修正
- クラスではなくオブジェクトを返すように
SwipeToReveal
bidirectionalGestureInclusion
を変更します。(I29597) RoboElectric
でテストを実行する際に、ハプティクスを使用できないようにしました。(I58bd1)- コンテンツとアクション ボタンの間の
SwipeToReveal
パディングと、アクション ボタンのアイコンとテキストの間のパディングを更新しました。(Ic46cb)
バージョン 1.5.0-alpha11
2025 年 3 月 12 日
androidx.wear.compose:compose-*:1.5.0-alpha11
がリリースされました。バージョン 1.5.0-alpha11 にはこれらの commit が含まれています。
API の変更
PagerState
を更新し、ベースクラスとして Compose FoundationPagerState
を削除して、currentPage
、currentPageOffsetFraction
、pageCount
プロパティを追加しました。GestureInclusion
インターフェースを更新し、メソッドの名前をignoreGestureStart
に変更しました。(I4ae07)SwipeToDismissBoxState
のオフセットを取得する推奨方法として、requireOffset
をSwipeToDismissBoxState
に追加しました。(I21042)CurvedModifier.semantics
を追加しました。最初はコンテンツの説明とトラバーサル インデックスをサポートします(I0b093)CurvedModifier.clearAndSetSemantics
を追加して、曲線のセマンティクスをオフにする手段を提供しました。CurvedText
は引き続きコンテンツの説明をテキストにデフォルト設定しますが、timeTextCurvedText
とtimeTextSeparator
はコンテンツをアナウンスしなくなりました。(I4b568)HorizontalPager
のスワイプ ジェスチャーのデフォルトの処理の名前がPagerDefaults.gestureInclusion
に変更されました。デフォルトの動作は、最初のページの左端から始まるスワイプ操作のみを無視し、Talkback がオフの場合のみ無視するようになりました。それ以外の場合、デフォルトの動作では、スワイプ操作はページャによって無視されないため、スワイプして閉じるハンドラで使用できません。(Iee486)rotaryScrollable
API にロータリー オーバースクロールを追加しました。rotaryScrollable
のフリング動作にオーバースクロールとネストされたスクロールを追加しました。この変更により、タッチ スクロールとロータリー スクロール間で、オーバースクロールとネストされたスクロールの機能が同等になります。(I71926)SwipeToReveal
にエッジスワイプ ゾーンのサポートを追加しました。FoundationSwipeToReveal
のデフォルトの動作が、ジェスチャーがエッジから開始された場合にスワイプを許可しないように変更されました。Material3SwipeToReveal
のデフォルトの動作は、SwipeDirection
が単一方向に設定されている場合、ジェスチャーがエッジから開始されたときにスワイプを許可しないようになりました。(I32ef0)- TLC では、最初と最後のアイテムを中央に配置する代わりに、デフォルトで空の contentPadding を使用するようになりました。(I77ab7)
バグの修正
バージョン 1.5.0-alpha10
2025 年 2 月 26 日
androidx.wear.compose:compose-*:1.5.0-alpha10
がリリースされました。バージョン 1.5.0-alpha10 にはこれらの commit が含まれています。
API の変更
SwipeToRevealDefaults
を公開しました。(I0c34c)HorizontalPager
のswipeToDismissEdgeZoneFraction
パラメータを置き換えました。代わりに、必要なスワイプで閉じる動作を実現するために使用できる新しいパラメータgestureInclusion
が導入されました。gestureInclusion
はGestureInclusion
のインスタンスを受け取り、後続のスクロール イベントを続行するかどうかを決定します。ジェスチャーを許可すると、Pager がジェスチャーを消費します。許可しない場合、ジェスチャーはスワイプして閉じるハンドラなど、別の場所で処理されます。新しいデフォルトの動作では、Pager の最初のページの左端でのジェスチャーが禁止されるため、この領域でスワイプして閉じることができます。他のすべてのページでは、Pager がすべてのジェスチャーを使用できるため、スワイプして閉じる操作をトリガーできません。すべてのページでスワイプして閉じる動作を実現するには、現在のページを無視するカスタムGestureInclusion
インスタンス(PagerDefaults.disableLeftEdgeOnFirstPage
を参照)を指定するだけです。ここで導入されたもう 1 つの重大な変更は、Pager コンポーネントがデフォルトで全画面表示ではなくなったことです。この動作を実現するには、Modifier.fillMaxSize()
を追加します。(I9d3aa)- スワイプして表示する API(If5999)で
createAnchors
の名前をcreateRevealAnchors
に変更しました。 - スワイプして表示する API から
RevealScope
を削除しました。(Ie4ad5) - スワイプして表示する API の
RevealValue
から Revealing と Revealed を削除しました。(I8dbc5) - スワイプして表示する API で
SwipeDirection
の名前をRevealDirection
に変更しました。(I7472f) SwipeToReveal
のrememberRevealState
関数のpositionalThreshold
パラメータのシグネチャを変更しました。(I29c0a)ScalingLazyColumn
、TransformingLazyColumn
、ScreenScaffold
に新しいoverscrollEffect
パラメータを追加しました。(I0cee8)PagerDefaults#snapFlingBehaviour
を使用する場合、pagerSnapDistance
パラメータは、Pager がフリングする最大ページ数を指定するために使用できる Int パラメータmaxFlingPages
に置き換えられました。(I8cfc0)- Wear Pager が、Compose Foundation の
PagerScope
ではなく、独自のPagerScope
を持つようになりました。(I9195b) - 曲線テキストに
lineHeight
のサポートを追加しました(I1c936) TransformingLazyColumnState
とrememberTransformingLazyColumnState
にinitialAnchorItemIndex
とinitialAnchorItemOffset
を追加し、TransformationLazyColumn
で初期スクロール位置を指定できるようにしました。(I0a0d5)runWithTimingDisabled
は非推奨となり、runWithMeasurementDisabled
が推奨されます。runWithMeasurementDisabled
は、すべての指標が一時停止されるという動作をより明確に記述します。また、MicrobenchmarkScope
スーパークラスを公開します。これは、runWithMeasurementDisabled
関数を再宣言してアクセスを開くことができないためです(インラインであるため)。(I9e23b、b/389149423、b/149979716)TransformingLazyColumnItemScrollProgress
でのボクシングを回避するために、API にTransformingLazyColumnItemScrollProgress.Unspecified
を追加しました。(I0835d)
バグの修正
CurvedTextStyle
の Kdoc を改善(Id45e3)SwipeableV2
(SwipeToReveal
実装の一部)を公開ではなく内部化し、ライブラリ グループに制限しました。(Idbb94)HierarchicalFocusCoordinator
にテストを追加しました。(I1ce54、b/395548918)- Wear Compose の基盤サンプルで
SwipeToReveal
を改善しました。(I5f307) - ユーザー補助機能のために
TransformingLazyColumn
のverticalScrollAxisRange
のスクロール軸セマンティクス データを修正(I68123) - 不要なバックグラウンド スレッドを削除して、Wear4+ のロータリー ハプティクスのパフォーマンスを改善(I39cfe)
- API 36 以降でのみ
PredictiveBackNavHost
を使用するようにSwipeDismissableNavHost
を変更。(I59bed) - モーション軽減設定にアクセスする際のクラッシュを防ぐガードを追加しました。(I01e2c)
- ジャンクを減らすため、
TransformingLazyColumn
のプリフェッチを実装しました(Icca88)
バージョン 1.5.0-alpha09
2025 年 1 月 29 日
androidx.wear.compose:compose-*:1.5.0-alpha09
がリリースされました。バージョン 1.5.0-alpha09 にはこれらの commit が含まれています。
API の変更
CurvedTextStyle
では、文字間隔を時計回りの文字間隔と反時計回りの文字間隔に分割しました。これは、時計回りの文字はベースラインから広がるのに対し、反時計回りの文字は内側に広がるため(文字間隔を大きくする必要があるため)必要です(I4b848)。CompositionLocal
LocalReduceMotion
が簡略化され、ReduceMotion
オブジェクトではなくブール値を返すようになりました。ReduceMotion
インターフェースは非推奨になりました。LocalReduceMotion.current.enabled()
などの以前の呼び出しは、LocalReduceMotion.current
(I4937f)に置き換えることができます。PagerDefaults
で、snapAnimationSpec
の名前をSnapAnimationSpec
に変更しました。(I20c9a)
バージョン 1.5.0-alpha08
2025 年 1 月 15 日
androidx.wear.compose:compose-*:1.5.0-alpha08
がリリースされました。バージョン 1.5.0-alpha08 にはこれらの commit が含まれています。
API の変更
- すべての Wear Compose ライブラリを「明示的 API」モードに更新しました。(Iebf9f)
- ページャのスナップ アニメーション パラメータを
PagerDefaults
の一部にしました。(Ifff64) - オフセット パラメータを
SwipeToDismissBoxState
に追加しました。(I586bd)
バグの修正
- ロータリー プラットフォームのハプティクスは、V(Idb03e)以降の Wear OS バージョンで呼び出されるようになりました
バージョン 1.5.0-alpha07
2024 年 12 月 11 日
androidx.wear.compose:compose-*:1.5.0-alpha07
がリリースされました。バージョン 1.5.0-alpha07 にはこれらの commit が含まれています。
API の変更
TransformingLazyColumnState
で、アンカー アイテムのインデックスに基づいて現在のスクロールの進行状況を観察できるようになりました。(I72b01)- 新しい
Modifier.animateItem
がある場合、アイテムの追加、削除、移動時にTransformingLazyColumn
にアニメーションを追加しました。(Iecb9c) TransformingLazyColumn
がbeforeContentPadding
とafterContentPadding
の値をエクスポーズするようになりました。(Iccd5f)TransformingLazyColumn
は、コンポーネント(Material3 のCard
やButton
など)がTransformingLazyColumn
内に配置されたときに自動的にモーフィングするために使用できるコンポジション ローカルLocalTransformingLazyColumnItemScope
を提供するようになりました。呼び出し元は、新しいTransformExclusion
ラッパーを使用して自動モーフィングを無効にできます。(I1652f)
バグの修正
- U 以降をターゲットとするデバイスのロータリーの最小フリング速度と最大フリング速度を更新しました。(I33559)
TransformingLazyColumn
のアイテムにコンポーザブルが含まれていない場合に発生するクラッシュを修正しました(Idb99d)- Android Vanilla ice cream でロータリー ハプティクスの
ScrollFeedbackProvider
サポートを追加しました。(Ibc553) SwipeToReveal
を使用する際にタッチ スロップを大きくすることで、縦方向にスクロールする際にスワイプが誤ってトリガーされる可能性を減らしました。(Ic0672)- API 35 以降で
PredictiveBackHandler
が利用可能な場合に使用するようにSwipeDismissableNavHost
を更新しました。その場合は、新しいアニメーションが適用されます。(I08c11)
バージョン 1.5.0-alpha06
2024 年 11 月 13 日
androidx.wear.compose:compose-*:1.5.0-alpha06
がリリースされました。バージョン 1.5.0-alpha06 にはこれらの commit が含まれています。
API の変更
- 不要になった
orientation
パラメータを削除して、PagerState
のScrollInfoProvider
を簡素化しました。新しい動作では、水平方向と垂直方向のページングの両方でTimeText
がその場に留まります。(I71767) TransformingLazyColumn
は以前のリリースで導入されました。新しい名前TransformingLazyColumn
を優先するため、Wear のLazyColumn
エイリアス(TransformingLazyColumn
に転送されていた)を削除します。また、TransformingLazyColumnVisibleItemInfo
のheight
プロパティも削除しました。代わりにmeasuredHeight
を使用してください。(I0ea1e)PagerDefaults.snapFlingBehavior
snapAnimationSpec
をTween
からSpring
仕様に変更しました。(I10d02、b/349781047、b/303807950)LocalReduceMotion
CompositionLocal
を安定版に昇格しました(Ia6f32)
バグの修正
- ロータリーでのセマンティクスのサポートを改善するため、
Modifier.rotaryScrollable
を更新してfocusTargetWithSemantics
を使用するようにしました。(Ief0a0) - Compose ライブラリの最小 API 依存関係を 1.7.4 に更新しました。(I88b46)
- クリッピング バグの回避策として、
TransformingLazyColumn
で幅のモーフィングを無効にしました。(I3dfb8) TransformingLazyColumn
でオーバー スクロールした後にアイテムが消える原因となっていたバグを修正しました(Id7668)TransformingLazyColumn
用にLazyLayoutSemantics
を追加しました。(Ia8f56)
バージョン 1.5.0-alpha05
2024 年 10 月 30 日
androidx.wear.compose:compose-*:1.5.0-alpha05
がリリースされました。バージョン 1.5.0-alpha05 にはこれらの commit が含まれています。
API の変更
TransformingLazyColumnState
でanimateScrollTo
のサポートを追加し、アイテムへのスクロールをアニメーション化できるようにしました。(I4097d)TransformingLazyColumnState
にrequestScrollTo
を追加し、スクロールを次の測定まで遅延させました。(I20a5e)TransformingLazyColumn
でcontentPadding
のサポートを追加しました。(I3a69c)
バグの修正
- コンテンツの高さが画面の高さよりも短い場合に
TransformingLazyColumn
をレンダリングする際のバグを修正しました。(I6c3e1) TransformingLazyColumn
のScrollInfoProvder
が、最初のアイテムを正しくトラッキングするようになりました。(I1e4a3)TransformingLazyColumnState
が状態(anchorItemIndex
とanchorItemScrollOffset
)を保存するようになりました。(I3d265)
バージョン 1.5.0-alpha04
2024 年 10 月 16 日
androidx.wear.compose:compose-*:1.5.0-alpha04
がリリースされました。バージョン 1.5.0-alpha04 には、これらの commit が含まれています。
API の変更
- Wear Compose Foundation
LazyColumn
の名前をTransformingLazyColumn
に変更し、Compose FoundationLazyColumn
との区別を明確にしました。(I0608b) - 水平/垂直ページャーのロータリー サポートを追加しました。これにより、ユーザーはロータリー入力デバイスを使用してページャーを操作できます。(I9770d)
- ページャがデフォルトでページにスナップすることが明確になるよう、新しい
PagerDefaults
を更新しました。(Iff7d0) TransformingLazyColumnItemScrollProgress
が値クラスになり、パフォーマンスが向上します。(Ic399e)TransformingLazyColumn
がロータリーをすぐに利用できるようになりました。(I05206)TransformingLazyColumnState
がscrollToItem
をサポートするようになりました。(I507b3)SwipeToReveal
API から@ExperimentalWearFoundationApi
を削除しました(I34a66)
バージョン 1.5.0-alpha03
2024 年 10 月 2 日
androidx.wear.compose:compose-*:1.5.0-alpha03
がリリースされました。バージョン 1.5.0-alpha03 には、これらの commit が含まれています。
API の変更
- 現在の画面でスワイプして閉じる機能がサポートされていないまれなケースに対応するため、
SwipeToReveal
で双方向スワイプのサポートを追加しました。。デフォルトでは、右から左へのスワイプでのみスワイプして表示されます。スワイプして閉じる操作との競合を避けるため、デフォルトの動作を尊重することを強く推奨します。(Ifac04) LazyColumnState
を更新してcanScrollForward
とcanScrollBackward
をオーバーライドしました。これにより、最初または最後のアイテムが画面の中央に正確に配置されたときにスクロールが停止するようになりました。(Ia77d7)- Wear で発生する可能性のある、フォーカスの処理やシステム スワイプによる閉じる操作とのやり取りなどの一般的な問題に対処する新しい
HorizontalPager
コンポーネントとVerticalPager
コンポーネントを追加しました。(I2902b) LazyColumn
のサポートを追加し、クライアントのkey
とcontentType
をlayoutItems
を介して公開できるようにしました。(I1bd9c)
バグの修正
- ペイント フラグを使用して、曲線テキストのアニメーションをよりスムーズに更新しました。(I73a15)
- show フラグが false に設定された後に
onDismissRequest
が呼び出されないことを反映するように、マテリアル ダイアログのドキュメントを更新しました。(Ifd8d6) - マテリアル ダイアログの周辺減光アニメーションに関するバグを修正しました(I126bf)
バージョン 1.5.0-alpha02
2024 年 9 月 18 日
androidx.wear.compose:compose-*:1.5.0-alpha02
がリリースされました。バージョン 1.5.0-alpha02 には、これらの commit が含まれています。
API の変更
ScreenScaffold
で Wear ComposeLazyColumn
のサポートを追加しました(また、LazyColumnState
用のScrollInfoProvider
の実装も追加しました)。(Ib8d29)LazyColumnLayoutInfo
にviewportSize
を追加しました。(I4187f)
バグの修正
userScrollEnabled
フラグがfalse
に設定されている場合、ScalingLazyColumn
でロータリー スクロールが無効になるようにバグを修正しました。(I490ab、b/360295825)- 曲線テキストの予期しない垂直方向のパディングに対処するため、バグを修正しました。曲線テキストの高さが、テキストが実際に使用するスペースにより近い値になりました。この変更により、曲線テキスト(Iaa6ef)を含むスクリーンショット テストが失敗する可能性があります。
showDialog
が false に設定されているときにonDismissRequest
コールバックが呼び出されるDialog
のバグ修正を元に戻しました。これは、場合によってはonDismissRequest
が複数回呼び出される原因となるためです。(I64656)
バージョン 1.5.0-alpha01
2024 年 9 月 4 日
androidx.wear.compose:compose-*:1.5.0-alpha01
がリリースされました。バージョン 1.5.0-alpha01 にはこれらの commit が含まれています。
API の変更
- 関連する
LazyColumnState
API とLazyColumnScope
API を含む新しいLazyColumn
を Wear Compose Foundation ライブラリに追加しました。これは、Wear Compose でカスタマイズ可能なスケーリング効果やモーフィング効果を構築するための基盤となります。(Ib3b22) - 新しい
LazyColumn
API の一部として、itemsIndexed
のインデックス付きバージョンをLazyColumnScope
に追加しました。(Ib4a57) - スケーリングとモーフィングの動作をサポートするため、
LazyColumn
修飾子を追加しました。(Ie229a) HierarchicalFocusCoordinator
が安定版に昇格しました。(I31035)- 曲線テキストに文字間隔のサポートを追加しました。(I3c740)
- コンポーネントの回転を停止するために、
CurvedLayout.curvedComposable
にrotationLocked
パラメータを追加しました。(I66898) - wear material と wear material3 の一時的な
LocalUseFallbackRippleImplementation
API が削除されました(I62282) @WearPreviewDevices
マルチ プレビューからWearDevices.SQUARE
を削除しました(I11c02)
バグの修正
SwipeToReveal
で、表示されたアイテムが画面の表示部分に配置されるようになりました。これにより、SwipeToReveal
がリスト内で使用される場合に、アイテムが常に操作可能で、画面外に移動することがなくなります。(I38929)SwipeToReveal
がanimatedTo
の完了時にlastActionType
を None にリセットするようになりました。(I59b03)curvedComposable
の新しいrotationLocked
パラメータに関するドキュメントを改善しました。(Ifbd57)NaN
をScalingLazyColumnSnapFlingBehavior
のperformFling
に渡すときに発生するクラッシュを修正しました。(Ic13da)- 曲線レイアウト サイズ修飾子のバグを修正しました(I0fedf)
- 「sp」で指定された文字間隔のサポートを追加しました。(I9f6e3)
- ダイアログが非表示になったときに
onDismissRequest
コールバックが呼び出されない Material2 ダイアログのバグを修正しました(I64656) LayoutCoordinates.introducesFrameOfReference
の名前をLayoutCoordinates.introducesMotionFrameOfReference
に変更し、目的をより明確にしました。そのフラグに基づいて座標を計算する関連関数の名前を変更しました。(I3a330)
バージョン 1.4
バージョン 1.4.1
2025 年 2 月 12 日
androidx.wear.compose:compose-*:1.4.1
がリリースされました。バージョン 1.4.1 にはこれらの commit が含まれています。
バグの修正
- 一部のプラットフォームでモーション軽減設定が提供されていない場合に、その設定にアクセスするとクラッシュする問題を回避しました。(I01e2c)
バージョン 1.4.0
2024 年 9 月 4 日
androidx.wear.compose:compose-*:1.4.0
がリリースされました。バージョン 1.4.0 にはこれらのコミットが含まれています。
1.3.0 以降の重要な変更
ScalingLazyColumn
とPicker
はデフォルトでロータリー入力をサポートするようになりました。明示的なロータリー処理を削除し、デフォルトのシステム動作に委ねることをおすすめします。必要に応じて、rotaryScrollableBehavior
パラメータを使用してスクロールまたはスナップの動作を構成します。スナップの動作の場合、flingBehavior
パラメータを使用してスナップの動作とタッチ スクロール機能を指定することをおすすめします。Modifier.rotaryScrollable
は、回転イベントをスクロール可能なコンテナに接続する新しい修飾子です。これにより、ユーザーは Wear OS デバイスのリューズまたは回転ベゼルを使用してスクロールできます。SwipeDismissableNavHost
で、アプリ内遷移のエントリ アニメーションが提供されるようになりました。- 画面が最初に表示されるときに、
PositionIndicator
がデフォルトで表示されるようになりました。
その他の変更
- バージョン 1.3.0 で導入された変更点の完全なセットについては、beta01 リリースノートをご覧ください。
バージョン 1.4.0-rc01
2024 年 8 月 21 日
androidx.wear.compose:compose-*:1.4.0-rc01
がリリースされました。バージョン 1.4.0-rc01 には、これらの commit が含まれています。
- Compose の依存関係を 1.7.0-rc01 に更新し、Wear Compose Navigation を androidx.lifecycle 2.8.3 に固定しました
バージョン 1.4.0-beta03
2024 年 6 月 12 日
androidx.wear.compose:compose-*:1.4.0-beta03
がリリースされました。バージョン 1.4.0-beta03 には、これらの commit が含まれています。
バグの修正
Modifier.rotaryScrollable
を更新し、「focusable」の使用を「focusTarget」に置き換えました。これにより、パフォーマンスが向上します。(Id294b)TalkBack
でProgressIndicator
がアナウンスを繰り返す問題を修正しました。(I94563)- Wear Compose ライブラリのベースライン プロファイルを更新しました。(I3cbc3)
バージョン 1.4.0-beta02
2024 年 5 月 29 日
androidx.wear.compose:compose-*:1.4.0-beta02
がリリースされました。バージョン 1.4.0-beta02 にはこれらの commit が含まれています。
バグの修正
- 切り捨ての問題に対処するため、曲線テキストからスクリーン リーダーに渡される境界線の幅を増やしました(Id865f)。
- スクリーン リーダーに渡される
HorizontalPageIndicator
の境界を制限しました。以前は、インジケーターが全画面を占有していました(Id8d7a)。
バージョン 1.4.0-beta01
2024 年 5 月 14 日
androidx.wear.compose:compose-*:1.4.0-beta01
がリリースされました。バージョン 1.4.0-beta01 にはこれらの commit が含まれています。
Wear OS 向け Compose 1.4-beta01 では、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear Compose 1.4 には、次の新機能が含まれています。
Modifier.rotaryScrollable
という新しい修飾子を追加しました。この修飾子は、ロータリー イベントをスクロール可能なコンテナに接続し、ユーザーが Wear OS デバイスのリューズまたは回転ベゼルでスクロールできるようにします。また、ScalingLazyColumn
とPicker
がデフォルトでロータリー入力をサポートするようになりました。rotaryScrollableBehavior
パラメータを使用して、スクロールまたはスナップの動作を構成します。スナップ動作の場合、タッチ スクロールでもflingBehavior
パラメータを介してスナップを提供することをおすすめします。SwipeDismissableNavHost
で、アプリ内遷移のエントリ アニメーションが提供されるようになりました。- 画面が最初に表示されるときに、
PositionIndicator
がデフォルトで表示されるようになりました。 ToggleChip
のバリエーションとしてSelectableChip
とSplitSelectableChip
が追加されました。ユーザー補助機能で切り替え可能なセマンティクスではなく選択可能なセマンティクスを提供するには、RadioButton
とともに使用します。ListHeader
で、大きなフォントサイズに対応するためにコンテンツの高さの調整が必要な場合の高さ調整がサポートされるようになりました。
バグの修正
- 選択可能なチップがすでに選択されている場合に、切り替えのためのダブルタップをアナウンスするバグを修正しました。(I7ed88)
バージョン 1.4.0-alpha08
2024 年 5 月 1 日
androidx.wear.compose:compose-*:1.4.0-alpha08
がリリースされました。バージョン 1.4.0-alpha08 には、これらの commit が含まれています。
API の変更
- 新しいロータリー API に次の変更を加えました。
Modifier.rotary
の名前をModifier.rotaryScrollable
に変更しました。RotaryBehavior
インターフェースの名前をRotaryScrollableBehavior
に、その関数handleScrollEvent
の名前をperformScroll
に変更しました。RotaryScrollableAdapter
の名前をRotaryScrollableLayoutInfoProvider
に変更し、scrollableState
プロパティを削除しました。(I0c8a6) - ロータリー API にも変更が加えられました。
RotaryScrollableLayoutInfoProvider
をRotarySnapLayoutInfoProvider
に名前変更しました(このプロバイダはスナップ付きロータリーでのみ必要となるため)。RotaryScrollableDefaults.snapBehavior snapOffset
のsnapOffset
パラメータの型を Int から Dp に変更しました。(Iddebe) SplitSelectableChip
のclickInteractionSource
パラメータの名前をcontainerInteractionSource
に変更しました。(Ia8f84)SplitSelectableChip
のクリック コールバック パラメータ名を更新しました(onClick
からonSelectionClick
、onBodyClick
からonContainerClick
)。(I32237)
バグの修正
PositionIndicator
(スクロールバー)がスクロール可能なコンテンツと重なるバグを修正するため、PositionIndicator
の水平方向のパディングを 2 dp(以前は 5 dp)に更新しました。この変更により、パディングが変更されるため、PositionIndicator
を含む既存のスクリーンショットは破損する可能性があります。(I57472)- 低解像度と高解像度のロータリー デバイスの違いを説明することで、新しいロータリー API のドキュメントを改善しました。(I63abe)
- 補間されたアルファ値が 0 未満の場合にトリガーされる可能性があった
SwipeDismissableNavHost
の範囲外例外に対処しました。(Ib75a1、b/335782510)
バージョン 1.4.0-alpha07
2024 年 4 月 17 日
androidx.wear.compose:compose-*:1.4.0-alpha07
がリリースされました。バージョン 1.4.0-alpha07 にはこれらの commit が含まれています。
API の変更
Modifier.rotary
という新しい修飾子を追加しました。この修飾子は、ロータリー イベントをスクロール可能なコンテナに接続し、ユーザーが Wear OS デバイスのリューズまたは回転ベゼルでスクロールできるようにします。また、ScalingLazyColumn
と Picker は、デフォルトでロータリー入力をサポートするようになりました。スクロールまたはスナップの構成を指定するためのrotaryBehavior
パラメータを含む新しいオーバーロードが追加されています。rotaryBehavior
パラメータが snap に設定されている場合は、タッチ スクロール用にflingBehavior
パラメータでも snap を指定することをおすすめします。(I2ef6f)NestedScroll
ソースのドラッグとフリングは、UserInput
とSideEffect
に置き換えられます。これは、これらのソースの定義が拡張され、アニメーション(Side Effect)、マウスホイールとキーボード(UserInput)が含まれるようになったためです。(I40579)Switch/Checkbox
などの切り替えコントロールとRadioButton
などの選択可能なコントロールの区別を明確にするため、SelectableChip
とSplitSelectableChip
を追加しました。これにより、以前に追加されたToggleChip/SplitToggleChip
のオーバーロードがselectionControl
パラメータに置き換えられます。(Ia0217)ProgressIndicatorDefaults
のIndeterminateStrokeWidth
の可視性修飾子を public に更新しました。(I5b5a4)
バージョン 1.4.0-alpha06
2024 年 4 月 3 日
androidx.wear.compose:compose-*:1.4.0-alpha06
がリリースされました。バージョン 1.4.0-alpha06 にはこれらの commit が含まれています。
バグの修正
- Horologist から AndroidX へのロータリー動作の移行という大きな取り組みの一環として、ロータリー サポートの内部ドラフトを追加しました。(I617d1)
- Horologist から AndroidX へのロータリー動作の移行という大きな取り組みの一環として、ハプティクス サポートの内部ドラフトを追加しました。(I5568a)
バージョン 1.4.0-alpha05
2024 年 3 月 20 日
androidx.wear.compose:compose-*:1.4.0-alpha05
がリリースされました。バージョン 1.4.0-alpha05 には、これらの commit が含まれています。
API の変更
ScalingLazyListState
のinitialCenterItemIndex
プロパティとinitialCenterItemScrollOffset
プロパティを公開しました。(I0c616)ProgressIndicatorDefaults
のFullScreenStrokeWidth
を公開しました。(Ibea23)
バグの修正
ScalingLazyColumn
からlayoutInfo
への呼び出し回数を減らすことで、PositionIndicator
のパフォーマンスを改善しました。(Idc83d)
バージョン 1.4.0-alpha04
2024 年 3 月 6 日
androidx.wear.compose:compose-*:1.4.0-alpha04
がリリースされました。バージョン 1.4.0-alpha04 にはこれらの commit が含まれています。
API の変更
toggleControl
パラメータの代わりにselectionControl
パラメータを受け取るToggleChip
とSplitToggleChip
の新しいオーバーロードを追加しました。これは、ユーザー補助機能のために切り替え可能なセマンティクスではなく選択可能なセマンティクスを提供するために、RadioButton
コントロールとともに使用する必要があります(I1d6d9)- 新しい
selectionControl
オーバーロードのパラメータ名をonSelected
からonSelect
に更新しました(ToggleChip
とSplitToggleChip
の場合)。(I1a971)
バージョン 1.4.0-alpha03
2024 年 2 月 21 日
androidx.wear.compose:compose-*:1.4.0-alpha03
がリリースされました。バージョン 1.4.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
Modifier.inspectable
ラッパーは非推奨になりました。この API は、必要以上に修飾子の無効化を作成するため、使用は推奨されなくなりました。ツールに修飾子のプロパティを公開したい場合は、ModifierNodeElement
でinspectableProperties()
メソッドを実装することをおすすめします。(Ib3236)
バグの修正
WearPreview*
アノテーションのドキュメントのバグを修正しました。(Id526d)
バージョン 1.4.0-alpha02
2024 年 2 月 7 日
androidx.wear.compose:compose-*:1.4.0-alpha02
がリリースされました。バージョン 1.4.0-alpha02 に含まれる commit については、こちらをご覧ください。
バグの修正
- スワイプして表示する機能で、別のアイテムのスワイプを開始することで、1 つのアイテムで確定したアクションを操作(キャンセル)できるバグを修正しました。(Ide059)
- 大きなフォントサイズに対応するためにコンテンツの高さの調整が必要な場合に、高さを調整できるように
ListHeader
を更新しました。(I7290c、b/251166127)
バージョン 1.4.0-alpha01
2024 年 1 月 24 日
androidx.wear.compose:compose-*:1.4.0-alpha01
がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- アプリ内遷移用に
SwipeDismissableNavHost
にエントリ アニメーションを追加しました。(cfeb79a) PositionIndicator
が、画面の初回表示時にデフォルトで表示されるようになりました。この変更は、Wear の品質に関するガイドラインを満たすために導入されました。残念ながら、PositionIndicator
が含まれる画面では、スクリーンショット テストを更新する必要があります。これは、以前はPositionIndicator
が表示されていなかったためです。(419cef7)
API の変更
wear:compose-material
ライブラリとwear:compose-material3
ライブラリに新しいリップル API を追加しました。この API は、非推奨となったrememberRipple
に代わるものです。また、Material コンポーネントを非推奨のrememberRipple/RippleTheme
API を使用するように戻すための一時的なCompositionLocal
、LocalUseFallbackRippleImplementation
も追加します。これは次の安定版リリースで削除される予定です。カスタムRippleTheme
を提供している場合にのみ、一時的な移行支援として使用してください。移行情報とこの変更の背景については、developer.android.com をご覧ください。(af92b21)ColorScheme
を不変に変更しました。これにより、個々の色の更新の効率は低下しますが、色の一般的な使用の効率は向上します。この変更の理由は、ほとんどのアプリでは個々の色を更新することが主なユースケースではないためです。これは引き続き可能ですが、以前よりも再コンポーズが多くなり、すべてのマテリアル コードで状態サブスクリプションの量が大幅に減少し、より標準的なユースケースの初期化とランタイム コストに影響します。(f5c48b7)- API で
MutableInteractionSource
を公開する Wear material コンポーネントと Wear material3 コンポーネントが更新され、デフォルトで null になる null 可能なMutableInteractionSource
を公開するようになりました。セマンティクスの変更はありません。null を渡すことは、MutableInteractionSource
をホイストしないことを意味し、必要に応じてコンポーネント内で作成されます。null に変更すると、一部のコンポーネントでMutableInteractionSource
が割り当てられなくなり、他のコンポーネントでは必要なときにのみインスタンスが遅延作成されるため、これらのコンポーネント全体のパフォーマンスが向上します。これらのコンポーネントに渡すMutableInteractionSource
を使用していない場合は、代わりに null を渡すことをおすすめします。独自のコンポーネントでも同様の変更を行うことをおすすめします。(f8fa920) rememberExpandableState
を更新して、展開可能な状態を保存しました。これにより、別の画面に移動したときにデータが保存され、元の画面に戻ったときにデータが復元されます。(5c80095)
バグの修正
- ライフサイクル対応リスナーを使用するように
ReduceMotion
設定を更新しました。(7c6b122) TouchExplorationStateProvider
のリスナーをライフサイクル対応に更新しました(be28b01)- パフォーマンスを改善するため、
CompactButton
の materialcore レイヤを削除しました(25db8e9) - 例外を回避するため、NaN オフセットに対する
BasicSwipeToDismissBox
の堅牢性を高めました(b983739) - アルファ値が 0,1 の範囲内になるように
BasicSwipeToDismissBox
を更新しました。 ToggleButton
、SplitToggleButton
、Checkbox
、Switch
、RadioButton
のバグを修正し、ユーザー補助の読み上げが繰り返されないようにしました(以前は、セマンティック ロールが重複していました)。(d11eeb7)
バージョン 1.3
バージョン 1.3.1
2024 年 4 月 3 日
androidx.wear.compose:compose-*:1.3.1
がリリースされました。バージョン 1.3.1 にはこれらの commit が含まれています。
バグの修正
- スワイプして表示する機能で、別のアイテムのスワイプを開始することで、1 つのアイテムで確定したアクションを操作(キャンセル)できるバグを修正しました。(Ide059)
バージョン 1.3.0
2024 年 1 月 24 日
androidx.wear.compose:compose-*:1.3.0
がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください。
1.2.0 以降の重要な変更
SwipeToDismissBoxState
クラス、SwipeToDismissValue
列挙型、Modifier.edgeSwipeToDismiss
拡張関数が、androidx.wear.compose.material
パッケージではなくandroidx.wear.compose.foundation
パッケージの一部になりました。この更新されたアーキテクチャにより、他の設計上の考慮事項とは別にジェスチャー処理を実装できます。マテリアル デザインのワークフロー(構成されたテーマから色を適用するなど)は個別に処理されます。SwipeToRevealCard
クラスとSwipeToRevealChip
クラスは、recommended swipe-to-reveal guidance
の実装に役立ちます。SwipeToRevealSample
クラスは、これらのコンポーネントの使用方法を示しています。1.3.0-alpha02 リリースでは、ユーザーが選択したフォント スケーリングをより適切にサポートするために、
Chip
オブジェクトとToggleChip
オブジェクトの高さが拡大される変更が導入されました。これにより、クリッピングが発生する可能性があります。この問題を解決するため、MaterialTheme
のlarge
シェイプで、より大きな角丸半径(24 dp ではなく 26 dp)が使用されるようになりました。Chip
オブジェクトとToggleChip
オブジェクトは、この新しい角丸半径を使用して、Chip とToggleChip
の角でコンテンツが切り取られるのを防ぎます。- ほとんどの
Chips
とToggleChips
は、デフォルトの高さが 52 dp であるため、変更されません。ただし、プライマリ ラベルまたはセカンダリ ラベルのテキストが複数行含まれているChip
オブジェクトとToggleChip
オブジェクト、または高さがオーバーライドされているChip
オブジェクトとToggleChip
オブジェクトは、スクリーンショット テストを中断させる可能性があります。
- ほとんどの
その他の変更
バージョン 1.3.0 で導入された変更点の完全なセットについては、beta01 リリースノートをご覧ください。
実装に関する推奨事項
- 地図ベースのアプリのように、アプリでユーザーが画面のコンテンツをパンできる場合は、
SwipeDismissableNavHost
コンポーザブルでuserSwipeEnabled
をfalse
に設定してスワイプ処理をオフにし、ユーザーが前の画面に戻れるボタンを含めます。 - スクロール リスト内のフェードイン アニメーションと位置変更アニメーションの間に位置インジケーターのアニメーションをオフにするには、
SnapSpec
オブジェクトを使用します。 - メディアアプリが再生するコンテンツを読み込むのを待っている間、空白の
Placeholder
コンポーザブルを表示します。 - オンデマンドで展開可能なアイテムのコレクションを作成するには、試験運用版の
ExpandableStateMapping
クラスの使用を検討してください。
バージョン 1.3.0-rc01
2024 年 1 月 10 日
androidx.wear.compose:compose-*:1.3.0-rc01
がリリースされました。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
-
MaterialTheme
の大きなシェイプを更新して、26dp の角丸半径を使用するようにしました。これは、Chip とToggleChip
で使用されます。この変更は、大きなフォントサイズに対応するためにコンテンツの高さの調整をサポートするために必要です。そうしないと、既存のスタジアム形状で一部のテキスト コンテンツが切り取られてしまいます。図 1: 角でクリップされたテキスト。 図 2: テキストがクリップされていない。 この変更により、スクリーンショット テストが失敗する可能性があります。(I2e6ae)
バージョン 1.3.0-beta02
2023 年 12 月 13 日
androidx.wear.compose:compose-*:1.3.0-beta02
がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください。
バグの修正
BasicSwipeToDismissBox
で意図したスワイプ動作を復元しました。以前のリリースでは、指が画面に触れている間にトランジションのスライド部分が発生するように変更されていました。(Id8e76)
バージョン 1.3.0-beta01
2023 年 11 月 15 日
androidx.wear.compose:compose-*:1.3.0-beta01
がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください。
Wear OS 向け Compose 1.3-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear Compose 1.3 には、次の新機能が含まれています。
SwipeToDismissBoxState
、SwipeToDismissValue
、Modifier.edgeSwipeToDismiss
がandroidx.wear.compose.material
からandroidx.wear.compose.foundation
に移行されました。また、BasicSwipeToDismissBox
の基盤となるスワイプして閉じる実装も移行されました。これにより、スワイプして閉じるジェスチャー処理をマテリアル デザインとは独立して使用できます(たとえば、androidx.wear.compose.navigation
のSwipeDismissableNavHost
から)。androidx.wear.compose.material
のSwipeToDismissBox
は、MaterialTheme
から色を取得し、残りの実装をBasicSwipeToDismissBox
に委任するため、マテリアル デザインで使用することをおすすめします。SwipeDismissableNavHost
が新しいuserSwipeEnabled
パラメータをサポートするようになりました。これにより、スワイプ処理が不要な画面でスワイプ処理をオフにできます。BasicSwipeToDismissBox
はHierarchicalFocusCoordinator
を使用したフォーカス処理を改善しました。SwipeToReveal
には、Card
とChip
の推奨 UX ガイダンスに沿った新しいSwipeToRevealCard
コンポーザブルとSwipeToRevealChip
コンポーザブルがマテリアルに用意されています。また、サブアクションの元に戻す機能もサポートしています。DefaultTextStyle
でフォント パディングが無効になり、Android プラットフォーム全体で一貫性が保たれるようになりました。Chip
とToggleChip
の高さが、ユーザー補助の大きなフォントによってコンテンツが拡大した場合に対応できるよう調整されるようになりましたPositionIndicator
に、フェードイン、フェードアウト、位置変更のアニメーションの個別の仕様が追加されました。パフォーマンス上の理由から、スクロール可能なリストで使用する場合は、フェードインと位置変更をオフにすることをおすすめします。ExpandableStateMapping
は、@Composable
スコープでなくても、オンデマンドでExpandableStates
を作成する必要がある場合に、ExpandableStates
を生成する新しい方法を提供します。Placeholder
では、コンテンツが準備完了状態ではなくなった場合にリセットできるようになりました。また、モーションを減らす設定がPlaceholder
のきらめき効果とワイプオフ モーションにも適用されるようになりました。
既知の問題
- 画面が最初に表示されたとき、
PositionIndicator
は最初は表示されません。1.4 の初期のアルファ版で変更を行い、最初は表示されるものの、アニメーションは表示されないようにする予定です。
API の変更
- Foundation レベルの
SwipeToDismissBox
の名前をBasicSwipeToDismissBox
に変更しました。これにより、Foundation レベルのコンポーネントとマテリアル レベルのSwipeToDismissBox
の違いがより明確になります。後者は、MaterialTheme
からスクリムで使用する色を取得し、残りの実装をBasicSwipeToDismissBox
に委任します。(Ibecfc) rememberExpandableStateMapping
を試験運用版としてマークし、expandableItem
のパフォーマンスを改善しました。(I5f6bc)- マテリアル
SwipeToReveal
の Card API と Chip API のSwipeToRevealAction
クラスを、SwipeToRevealPrimaryAction
、SwipeToRevealSecondaryAction
、SwipeToRevealUndoAction
コンポーザブルを使用するスロットベースの API に置き換えました。新しい API の使用例については、サンプルコードをご覧ください。(Ia8943) PositionIndicator
アニメーション フラグをAnimationSpec
パラメータに置き換えました。個々のアニメーションは、AnimationSpec
としてsnap
を渡すことで無効にできます。(I6c523)
バグの修正
- サイズが制限されている場合に、制限された曲線テキストによってトリガーされるバグを修正しました(I50efe)
curvedComposable
に関連する NaN クラッシュの可能性に対処しました(I970eb)PositionIndicator
での位置変更のハイライト アニメーションの削除を元に戻しました。(Ieb424)- マテリアル チップのパフォーマンスを改善するため、material-core レイヤを削除しました。(If2dcb)
バージョン 1.3.0-alpha08
2023 年 10 月 18 日
androidx.wear.compose:compose-*:1.3.0-alpha08
がリリースされました。バージョン 1.3.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
- さまざまなアニメーション(
showFadeInAnimation
、showFadeOutAnimation
、showPositionAnimation
)を制御するために、PositionIndicator
オーバーロードに個別のフラグを追加しました。以前の API は非推奨となり、呼び出しを新しい API に転送します。パフォーマンス上の理由と UX の一貫性のために、PositionIndicator
をスクロール可能なリストで使用する場合は、showFadeInAnimation
フラグとshowPositionAnimation
フラグをオフにすることをおすすめします。PositionIndicator
が音量変更などのスタンドアロン インジケーターとして使用される場合は、3 つのアニメーションすべてをオンにすることをおすすめします。(I44294) - スワイプして閉じる機能が
wear.compose.foundation
に移行したことに伴い、マテリアルのSwipeToDismissBoxState
、SwipeToDismissValue
、edgeSwipeToDismiss
は非推奨となりました。wear.compose.foundation
の同等のものに置き換えてください。(Iee8c9)
バグの修正
- Wear Compose の Foundation、Material、Navigation ライブラリのベースライン プロファイルを更新しました。(Idb060)
- 以前の CL で導入された
PositionIndicator
の動作変更を元に戻し、画面が最初に表示されたときにPositionIndicator
がアニメーション表示されるようにしました。1.4 の初期のアルファ版でも同様の変更を行い、PositionIndicator
が最初に表示されるようにする予定です。ただし、アニメーションは表示されません。(I41843) PositionIndicator
でパフォーマンスに関する問題の一部に対処しました。(I1c654、b/302399827)- タッチ探索状態プロバイダのデフォルト実装のパフォーマンスを最適化し、派生状態ではなく
State<Boolean>
に依存するようにしました。(Ieec4d) - Android 13 以降では
systemGestureExclusion
の長方形を設定しています。(Ib1f4b)
バージョン 1.3.0-alpha07
2023 年 10 月 4 日
androidx.wear.compose:compose-*:1.3.0-alpha07
がリリースされました。バージョン 1.3.0-alpha07 に含まれる commit については、こちらをご覧ください。
API の変更
PositionIndicator
に個別のフラグ(showFadeInAnimation
、showFadeOutAnimation
、showPositionAnimation
)を追加し、さまざまなアニメーションを制御できるようにしました。以前の API は非推奨となり、呼び出しを新しい API に転送します。パフォーマンス上の理由と UX の一貫性のために、PositionIndicator
をスクロール可能なリストで使用する場合は、showFadeInAnimation
フラグとshowPositionAnimation
フラグをオフにすることをおすすめします。PositionIndicator
が音量変更などのスタンドアロン インジケーターとして使用される場合は、3 つのアニメーションすべてをオンにすることをおすすめします。(Ia2d63)
バグの修正
- メインのアクション テキストにフェード アニメーションを追加し、サブのアクションをフェードアウトしたり、完全にスワイプして展開したときにアイコンのスケールを変更したりすることで、スワイプして表示するモーションを改善しました。(Ib7223)
- スワイプして表示するアクションをユーザー補助に対応させることをおすすめします。スワイプして表示するサンプルにカスタムのユーザー補助アクションを追加しました。(I42224)
SwipeToDismissBox
のパフォーマンスを改善しました。たとえば、初期ロジックで再コンポーズがトリガーされないようにリファクタリングしました。SwipeToDismissBox
が全画面サイズで描画されるようになりました。(Ie0aa2)PositionIndicator
が誤って消えるバグを修正しました。(I2091a)- 再コンポーズを最適化することで
PositionIndicator
のパフォーマンスを改善しました。アニメーションを制御するための新しいフラグ(fadeIn
、fadeOut
、positionChange
)が後から追加されました(API の変更を参照)(Ifac7d) PositionIndicator
の Microbenchmark テストを追加しました(Idf875)
バージョン 1.3.0-alpha06
2023 年 9 月 20 日
androidx.wear.compose:compose-*:1.3.0-alpha06
がリリースされました。バージョン 1.3.0-alpha06 に含まれる commit については、こちらをご覧ください。
バグの修正
SwipeToReveal
でModifier.edgeSwipeToDismiss
のサポートを追加しました。(I95774、b/293444286)- マテリアルの
SwipeToRevealChip
とSwipeToRevealCard
のサンプルを追加しました。(Ieb974) - Wear Compose Foundation ライブラリと Material ライブラリのベースライン プロファイルを更新しました。(I1dd1f)
バージョン 1.3.0-alpha05
2023 年 9 月 6 日
androidx.wear.compose:compose-*:1.3.0-alpha05
がリリースされました。バージョン 1.3.0-alpha05 に含まれる commit については、こちらをご覧ください。
バグの修正
- Swipe to Reveal で、一度に 1 つのアイテムのみをスワイプできるように処理を追加しました。(I3cd7a)
ScalingLazyColumnDefaults
のドキュメントを改善し、実際の動作との整合性を高めました。(I886d3)
バージョン 1.3.0-alpha04
2023 年 8 月 23 日
androidx.wear.compose:compose-*:1.3.0-alpha04
がリリースされました。バージョン 1.3.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
SwipeToReveal
のセカンダリ アクションの取り消しサポートを追加しました。(I7a22d)
API の変更
- Wear Material3 ライブラリに
HorizontalPageIndicator
を追加しました。(Ifee99) androidx.wear.tooling.preview
ライブラリを使用するように Wear Compose プレビュー ツールを更新しました。(Ib036e)
バグの修正
- 修飾子が正しくチェーンされない丸いボタンのバグを修正しました。(I5e162)
バージョン 1.3.0-alpha03
2023 年 8 月 9 日
androidx.wear.compose:compose-*:1.3.0-alpha03
がリリースされました。バージョン 1.3.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
- マテリアルに、カードとチップで
SwipeToReveal
を実装するための 2 つの新しいコンポーザブルを追加しました。これらのコンポーザブルは、コンポーネントに関する推奨の UX ガイダンスに沿っており、デベロッパーが Wear マテリアルの既存のコンポーネントでSwipeToReveal
を実装しやすくなっています。(I7ec65) - 以前にコメントで説明した
FloatRange
アノテーションを API 制約として有効にしました。(Icb401)
バグの修正
ScalingLazyColumn
の初期スクロール ロジックをonGloballyPositioned()
の内部に移動しました。(Ic90f1)PositionIndicator
、ProgressIndicator
、SelectionControls
でdrawWithCache
を使用して、ストロークの割り当てを最適化するようになりました。(I5f225、b/288234617)- 無効状態のチェックボックスのチェックマークの表示を修正しました。(Ib25bf)
- コンテンツが準備完了状態ではなくなった場合にプレースホルダを表示するようにリセットできるように、
Placeholder
を更新しました。(Ibd820) - 不安定な
Placeholder
テストを修正しました(Idb560)
バージョン 1.3.0-alpha02
2023 年 7 月 26 日
androidx.wear.compose:compose-*:1.3.0-alpha02
がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
@Composable
スコープ内ではなく、オンデマンドでExpandableStates
を作成する必要があるケース向けに、ExpandableStates
を生成する新しい方法としてExpandableStateMapping
を提供しています(Iff9e0)。SwipeToDismissBox
がandroidx.wear.compose.material
パッケージからandroidx.wear.compose.foundation
パッケージに移行されました。(I275fb)- 互換性の抑制をアノテーションする API ファイルを更新しました。(I8e87a、b/287516207)
Chip
、CompactChip
、ToggleChip
の高さの定数を公開しました(Idbfde)Chip
とCompactChip
の水平パディングと垂直パディングを公開しました。(Ieeaf7)- 新しい
userSwipeEnabled
パラメータを使用して、SwipeDismissableNavHost
でスワイプ処理をオフにする機能を追加しました。(Id2a0b、b/230865655) - Wear Compose Foundation の新しい
SwipeToDismissBox
を使用するよう Wear Compose Navigation ライブラリを更新しました。(I4ff8e)
バグの修正
- ボタンがある場合にボタンの動作をクリックした後に
expandedItem
が正しいコンテンツを表示しない z オーダーのバグを修正しました。(I1899d、b/289991514) HierarchicalFocusCoordinator
を使用してSwipeToDismissBox
(およびSwipeDismissableNavHost
)のフォーカス処理を改善(I45362、b/277852486)SwipeableV2
でのジェスチャー処理を修正しました。(I89737)- 1.2 リリースのベースライン プロファイルを確定しました。(Id5740)
SwipeToDismissBox
の Foundation への移行に伴い、マテリアルのSwipeToDismissBox
実装は Foundation に転送され、テーマからデフォルトのカラー値が提供されるようになりました。(If8451)ListHeader
に見出しのセマンティクスを追加しました。(Ic5420)Chip
とToggleChip
は、ユーザー補助機能の大きなフォントによりコンテンツが拡大した場合、必要に応じて高さを調整するようになりました。(Iaf302)- ユーザー補助のため、
SplitToggleChip
のタップ可能な領域のセマンティック ロールのバグを修正しました。(Ieed3a) - アニメーションを減らす設定で、プレースホルダのきらめき効果とワイプオフ モーションが無効になるようになりました。(I91046)
Stepper
とInlineSlider
が長押しでのクリックの繰り返しをサポートするようになりました。これにより、+ ボタンまたは - ボタンを長押しすることで、Stepper
とInlineSlider
の値をすばやく増減できます。(I27359)
バージョン 1.3.0-alpha01
2023 年 6 月 21 日
androidx.wear.compose:compose-*:1.3.0-alpha01
がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください。
バグの修正
1.2.0-alpha07
と1.2.0-alpha10
でお知らせしたとおり、Android プラットフォーム全体で一貫性を保つため、DefaultTextStyle
を変更してフォント パディングをオフにします。これにより、大きなフォントサイズでテキストがクリップされるケースがいくつか解消されますが、画面レイアウトにも影響する可能性があるため、スクリーンショット テストを更新する必要があります。たとえば、ここではテキストのクリッピングが見られます(Ic6a86)。

- フォント パディングをオフにすると、表示されなくなります。

wear.compose.foundation
をwear.compose.material
の API 依存関係として更新しました(I72004、b/285404743)SwipeToDismissBox
のバグを修正しました。コンテンツまたは背景が変更されたときに新しい修飾子が作成されるように、背景キーとコンテンツ キーが remember ブロックに渡されるようになりました。(Ib876c、b/280392104)- 12 時間形式または 24 時間形式の形式を選択する際にロケールを使用するように
TimeText
を更新しました。(If4a3d) SwipeToDismissBox
contentScrimColor
のデフォルト パラメータの不整合を修正しました。(I2d70f)SwipeToReveal
でのモーション処理を改善しました。(I28fb7)
既知の問題
- ユーザーが設定したフォントサイズをサポートすることは、ユーザー補助機能の要件です。複数行のチップは、フォントサイズが大きい場合にテキストが切り取られる可能性があるため、早期の 1.3 アルファ版でチップを更新し、そのような場合に高さの調整を行います。
バージョン 1.2
バージョン 1.2.1
2023 年 10 月 18 日
androidx.wear.compose:compose-*:1.2.1
がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください。
バグの修正
PositionIndicator
が誤って消えるバグを修正しました。(7a167f)
バージョン 1.2.0
2023 年 8 月 9 日
androidx.wear.compose:compose-*:1.2.0
がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の重要な変更
- Wear OS 1.2.0 向け Compose の安定版リリースです(詳細)。
- Wear Compose 1.2 の主な変更点の一覧については、リリースノート(Compose for Wear OS 1.2 Beta01)をご覧ください。
バージョン 1.2.0-rc01
2023 年 7 月 26 日
androidx.wear.compose:compose-*:1.2.0-rc01
がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
- 1.2 リリース(Id5740)のベースライン プロファイルを確定しました
バージョン 1.2.0-beta02
2023 年 6 月 7 日
androidx.wear.compose:compose-*:1.2.0-beta02
がリリースされました。バージョン 1.2.0-beta02 に含まれる commit については、こちらをご覧ください。
新機能
ScalingLazyColumn
でスケーリングとフェードを無効にする新しい試験運用版のLocalReduceMotion
CompositionLocal
変数を追加しました。(I58024)
バグの修正
- Wear Compose の Foundation ライブラリと Material ライブラリのベースライン プロファイルを更新しました。(I4725d)
SwipeToDismissBox
contentScrimColor
パラメータのデフォルト値の不整合を修正しました(I2d70f)IncludeFontPadding
設定に使用されるDefaultTextStyle
のデフォルト値を修正しました(I737ed)
バージョン 1.2.0-beta01
2023 年 5 月 24 日
androidx.wear.compose:compose-*:1.2.0-beta01
がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。
Wear OS 向け Compose 1.2 の概要
Wear OS 向け Compose 1.2-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear Compose 1.2 には、次の新機能が含まれています。
expandableItem
とexpandableItems
は、ScalingLazyColumn
内のアイテムの展開をサポートする 2 つの新しいFoundation
コンポーネントです。行数が決まっているテキストなど、1 つの展開可能なアイテムにはexpandableItem
を使用します。展開可能な項目のグループにはexpandableItems
を使用し、コンテンツが展開された後に折りたたまれるボタンの作成を簡素化するにはexpandableButton
を使用します。HierarchicalFocusCoordinator
- この試験運用版のコンポーザブルを使用すると、コンポジションのサブツリーをフォーカス有効またはフォーカス無効としてマークできます。Picker
- 選択ツールがユーザーのスクロールに対してアクティブかどうかを制御するuserScrollEnabled
が API に追加されました。PickerGroup
- 複数の Picker をまとめて処理するための新しいコンポーザブル。HierarchicalFocusCoordinator
API を使用して Picker 間のフォーカスを処理し、Picker アイテムの自動中央揃えを有効にします。Placeholder
- シマーと「ワイプオフ」のアニメーションを更新しました。コンテンツの準備ができたらすぐにワイプオフ効果が適用されるようになりました。ScalingLazyColumn
-ScalingLazyColumn
と関連するクラスをandroidx.wear.compose.material.ScalingLazyColumn
からandroidx.wear.compose.foundation.lazy.ScalingLazyColumn
に移行しました。Foundation.Lazy
バージョンを使用するには、更新してください。SwipeToReveal
- 既存の「長押し」パターンを補完する手段として、セカンダリ アクションにアクセスするためのスワイプして表示する機能の試験運用版サポートを追加しました。Stepper
- デフォルトの範囲セマンティクスの無効化をスムーズに進めるため、enableRangeSemantics
パラメータとともにオーバーロードを追加しました。Previews
- Wear 画面でコンポーザブルをプレビューするためのカスタム アノテーションを追加しました。WearPreviewSmallRound
は小型の丸型デバイスでコンポーザブルをプレビューし、WearPreviewLargeRound
は大型の丸型デバイスでコンポーザブルをプレビューし、WearPreviewSquare
は正方形のデバイスでコンポーザブルをプレビューします。また、次のプレビュー アノテーションとマルチプレビュー アノテーションがあります。WearPreviewFontScales
は、複数のフォントサイズでウェアラブル デバイスのコンポーザブルをプレビューし、WearPreviewDevices
は、さまざまなウェアラブル デバイスのコンポーザブルをプレビューします。- Wear Compose に
DefaultTextStyle
を追加しました。これにより、PlatformTextStyle.includeFontPadding
プロパティがデフォルトで true に設定されます(現在の設定)。これにより、フォント パディングをデフォルトでオフにする処理を、1.3 の初期アルファ版の Compose ライブラリと同期させることができます。詳しくは、1.2.0-alpha10 をご覧ください。
新機能
- reduce_motion 設定がオンになっている場合に、スケーリングとフェード アニメーションを無効にする試験運用版のサポートを追加しました。(I58024)
バグの修正
CurvedSize.kt
のangularWidthDp
に関するドキュメントを改善しました(Iab75c)SwipeDismissableNavHost
は、空のバックスタックの考えられる原因とともに警告をログに記録するようになりました。これは、バックスタックが空のときにスローされたIllegalArgumentException
が原因で発生する予期しないクラッシュを防ぐために行われます。(I04a81、b/277700155)
バージョン 1.2.0-alpha10
2023 年 5 月 10 日
androidx.wear.compose:compose-*:1.2.0-alpha10
がリリースされました。バージョン 1.2.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
- セカンダリ アクションにアクセスする手段として、スワイプして表示する機能のサポートを追加しました。このパターンは、ユーザーが(別の)セカンダリ アクションを表示できる既存の方法である「長押し」パターンを補完するものです。(I60862)
API の変更
SwipeToReveal
のアクション コンポーザブルにRevealScope
を追加しました。これにより、追加のアクションが表示されるオフセットにアクセスできます。(I3fd56)
バグの修正
- フリング後に Wear API 33 で
ScalingLazyColumn
が動かなくなる問題を修正しました(Ic4599) - ジャンクを減らすために、
PositionIndicator
のパフォーマンスを改善しました。(I35e92) - チップと
CompactChip
で、セマンティック ロールがRole.Button
に設定されなくなるバグを修正しました。(I93f91、b/277326264)
既知の問題
Android Studio で、@WearPreviewDevices と @WearPreviewFontScales でアノテーションを付けるとプレビューのレンダリングが失敗するバグが特定されました。修正はまもなくリリースされる予定です。なお、他の Wear プレビュー アノテーションは Android Studio Giraffe 2022.3.1 以降で意図したとおりに動作します。
バージョン 1.2.0-alpha07 では、Wear Compose に DefaultTextStyle を追加し、既存の PlatformTextStyle.includeFontPadding の値を true に維持しました。背景については、Compose でのフォント パディングの修正をご覧ください。Android プラットフォーム全体で一貫性を保つため、早期の 1.3 アルファ版で DefaultTextStyle を変更し、フォント パディングをオフにします。これにより、大きなフォントサイズでテキストが切り取られるケースがいくつか解消されますが、画面レイアウトにも影響する可能性があるため、スクリーンショット テストの更新が必要になります。たとえば、フォントサイズが大きいと、テキストがクリップされます。

- フォント パディングをオフにすると、表示されなくなります。

新しい設定は、テーマのタイポグラフィをオーバーライドすることで、今すぐ採用できます。コード例をご覧ください。
バージョン 1.2.0-alpha09
2023 年 4 月 19 日
androidx.wear.compose:compose-*:1.2.0-alpha09
がリリースされました。バージョン 1.2.0-alpha09 に含まれるコミットについては、こちらをご覧ください。
API の変更
- DP で角度の幅を設定するための
CurvedModifier
API にangularSizeDp
を追加(I89a52)
バグの修正
- 時間選択ツールのデモのユーザー補助に関する問題を修正しました。(Id0eb7)
バージョン 1.2.0-alpha08
2023 年 4 月 5 日
androidx.wear.compose:compose-*:1.2.0-alpha08
がリリースされました。バージョン 1.2.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
ExpandableItemsState
の名前をExpandableState
に変更しました。(If85ea)- コンテンツが展開されたときに折りたたまれるボタンを簡単に作成できるように
expandableButton
を追加し、展開可能な例も更新しました。(Iae309)
バグの修正
- 展開可能なサンプルを改善し、より多くの可能性を示しました。
expandableItem
のアニメーションを変更し、アニメーション全体を通してコンテンツが中央に配置されるようにしました。(I2f637) - State を使用して色を手動でアニメーション化する際に余分な再コンポーズが発生しないように、
ToggleControls
を更新しました。(I5d319)
バージョン 1.2.0-alpha07
2023 年 3 月 22 日
androidx.wear.compose:compose-*:1.2.0-alpha07
がリリースされました。バージョン 1.2.0-alpha07 に含まれる commit については、こちらをご覧ください。
API の変更
- Expandable Item コンポーネント(1.2.0-alpha06 で追加)は、
MaterialTheme
への意味のある参照がなかったため、マテリアルからファウンデーションに移動しました。(Ib0525)
バグの修正
PickerGroup
を使用する画面で発生していたクラッシュを修正しました。これにより、フォーカスを持つ Picker がない場合にPickerGroup
がフォーカスを正しく処理するようになります。また、Picker のデモで RSB スクロールをサポートしました。(If8c19)- ダイアログのトランジションを改善しました。イントロ トランジションがアウトロ トランジションに合わせてスムーズになりました。(Ib5af9)
- Wear Compose に
DefaultTextStyle
を追加しました。これにより、PlatformTextStyle.includeFontPadding
プロパティがデフォルトで true に設定されます(現在の設定)。これにより、将来的にフォント パディングをデフォルトでオフにする処理を Compose ライブラリと同期できるようになります。背景については、(Compose でのフォント パディングの修正)をご覧ください。(I2aee8) - Google Play ストアへのアプリの公開をブロックしていた activity-compose 経由の
UpsideDownCake
プレビュー依存関係を元に戻しました。(I6443d)
バージョン 1.2.0-alpha06
2023 年 3 月 8 日
androidx.wear.compose:compose-*:1.2.0-alpha06
がリリースされました。バージョン 1.2.0-alpha06 に含まれる commit については、こちらをご覧ください。
API の変更
CurvedBox
コンポーネントを追加します。このコンポーネントは、曲がった世界でコンポーネントを重ねて配置します。(I29200)- Expandable Item(s) を追加 -
ScalingLazyColumn
内の展開可能なアイテムのグループ、または展開可能な単一アイテム(行数が展開されるテキストなど)のいずれかをサポートする 2 つの新しいコンポーネント。(I95dd5) - Wear 画面でコンポーザブルをプレビューするためのカスタム アノテーションとして、
WearPreviewSmallRound
(小型の円形デバイスでコンポーザブルをプレビュー)、WearPreviewLargeRound
(大型の円形デバイスでコンポーザブルをプレビュー)、WearPreviewSquare
(正方形のデバイスでコンポーザブルをプレビュー)を追加しました。また、次のマルチ プレビュー アノテーションがあります。WearPreviewFontScales
は、複数のフォントサイズでウェアラブル デバイスのコンポーザブルをプレビューし、WearPreviewDevices
は、さまざまなウェアラブル デバイスのコンポーザブルをプレビューします。これらのプレビューを使用するには、最新の Android Studio(Giraffe Canary 6)以降を使用する必要があります。これらのアノテーションが目的に合わない場合は、プレビューを使用できます。また、パラメータを使用してさらにカスタマイズすることもできます。(I397ff) HierarchicalFocusCoordinator
は、幅広い適用性があるため、コアの Compose ライブラリに移行する候補と見なされていますが、試験運用版としてマークされています。(I3a768)
バグの修正
HierarchicalFocusCoordinator
のバグを修正しました。focusEnabled
パラメータに渡されたラムダが変更された場合、新しいラムダが正しく使用されるようになりました。(Icb353)Button
、CompactButton
、Chip
、CompactChip
、ToggleButton
で背景としてプライマリ カラーを使用する場合、デフォルトの無効コンテンツの色を Background に更新しました。これにより、アクセシビリティのコントラストが向上します。(I527cc)
バージョン 1.2.0-alpha05
2023 年 2 月 22 日
androidx.wear.compose:compose-*:1.2.0-alpha05
がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit については、こちらをご覧ください。
API の変更
- オプションとして最小制約をコンポーザブルに伝播できるように
PickerGroup
API を更新しました。true に設定すると、親コンポーザブルから渡された最小制約がPickerGroup
で許可されます。false に設定すると、PickerGroup
は最小制約をリセットします。(I3e046) - 特定の Picker オプションへのプログラマティック アニメーションをサポートするため、Picker API に
animateScrollToOption
を追加しました。(I6fe67)
バグの修正
- 右から左へのレイアウトをサポートするように
HorizontalPageIndicator
を更新しました。(Ia4359) HorizontalPageIndicator
での右から左へのレイアウトに対するスクリーンショット テストを追加しました。(I6fbb8)TestNavHostController
を使用するSwipeDismissableNavHostTest
にテストを追加しました。(I61d54)
バージョン 1.2.0-alpha04
2023 年 2 月 8 日
androidx.wear.compose:compose-*:1.2.0-alpha04
がリリースされました。バージョン 1.2.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- focus API を使用して複数の Picker をまとめて処理するための
PickerGroup
。さまざまな Picker 間でフォーカスを処理し、パラメータに基づいて Picker の自動中央揃えを有効にします。デベロッパーは、この機能を使って、グループのイベントを処理する一方でさまざまな Picker の間でフォーカスを変更できます。TalkBack モードでは、PickerGroup
は、選択された Picker にグループからフォーカスを移動することで、TalkBack のフォーカスを処理します。(I60840)
API の変更
- デフォルトの範囲セマンティクスの無効化をスムーズに進めるため、
enableRangeSemantics
パラメータとともに Stepper にオーバーロードを追加しました。(Ia61d4)
バグの修正
ScalingLazyColumn
を横方向のスクロール ページ内にネストできるようにしました。(Iec3f8、b/266555016)- Stepper の kdocs と
StepperTest
テストのクリーンアップを改善しました。(Ic118e) androidx.navigation
の依存関係をバージョン 2.5.3 に更新しました。(If58ed)
バージョン 1.2.0-alpha03
2023 年 1 月 25 日
androidx.wear.compose:compose-*:1.2.0-alpha03
がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
ScalingLazyColumn
(および関連するクラス)をandroidx.wear.compose.material.ScalingLazyColumn
からandrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn
に移行しました(移行については、こちらの例をご覧ください)。独自のマテリアル コンポーネントではないため、この新しい移行先はcompose.foundation.lazy.LazyColumn
の場所に近くなり、より自然になりました。この変更は、既存のマテリアル ライブラリと並行して取り組むことになる、新しい Material3 ライブラリに備えて行われたものです。(I060e7)
以下の変更はマテリアルから Foundation.Lazy
への ScalingLazyColumn
の移行の一環です。
- マテリアルの
ScalingLazyColumn
をターゲットとするPositionIndicator
は非推奨となりました。Foundation.Lazy ScalingLazyColumn
に更新してください。また、anchorType
フィールドがScalingLazyListLayoutInfo
に追加されました。(I29d95) ScalingLazyColumn
が Wear Compose Material パッケージで非推奨になりました。(I16d34)- Wear Compose
Foundation.Lazy
のScalingLazyListState
を使用するようScrollAway
修飾子を更新し、Wear Compose Material のScalingLazyListState
を取得するオーバーロードを非推奨としました。(Ifc42c) Foundation.Lazy
のScalingLazyListState
を使用するよう Dialog API を更新し、マテリアルのScalingLazyListState
を使用するオーバーロードを非推奨としました。(Ic8960)Foundation.Lazy
のScalingParams
を使用するよう Picker API を更新し、マテリアルのScalingParams
を使用するオーバーロードを非推奨としました。(Idc3d8)
バグの修正
- 値が実際に変更された場合にのみ更新をプッシュするようにすることで
ScalingLazyListState.centerItemIndex
での不要な再コンポジションの原因となっていたバグを修正しました。(Ia9f38) SwipeToDismissBox
のパフォーマンスを改善しました。(I3933b)- Wear Compose Foundation に
ScalingLazyColumn
のベンチマーク テストを追加しました。(Ie00f9) Foundation.Lazy
の同等のものを使用するようにマテリアルの一部の内部ScalingLazyColumn
クラスメソッドを更新しました。(I38aab)- Picker テストの問題を修正し、オフセットありのスクロールをチェックするためのテストを追加しました。(I6ac34)
- マテリアルの
ScalingLazyColumn
ではなくFoundation.Lazy
に依存するようにScalingLazyColumn
の統合デモを移行しました。(Ic6caa) DatePicker
デモにオプションのfromDate/toDate
パラメータを追加しました。(I961cd)
バージョン 1.2.0-alpha02
2023 年 1 月 11 日
androidx.wear.compose:compose-*:1.2.0-alpha02
がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- Android Compose UI テストが、フレームを(
waitForIdle
などを介して)アイドル状態にするためフレームの実行時にフレームごとにレイアウトパスを実行するようになりました。この変更は、レイアウト アニメーションの個々のフレームでアサートするテストに影響する可能性があります。(I8ea08、b/222093277) BasicText
と動作を同一にするためパラメータminLines
が Wear Text に追加されました。(I24874)CompactChipTapTargetPadding
が一般公開され、ドキュメントに掲載されるようになりました。(If1e70、b/234119038)
バグの修正
wear.compose
パッケージのマルチプラットフォーム ビルドを無効にしました。(Iad3d7)scrollToOption
の KDocs を修正しました。(I6f9a0)rememberUpdatedState
を使用するようPlaceholderState.rememberPlaceholderState()
を更新し、onContentReady
ラムダの場合に状態が更新されるようにしました。(I02635、b/260343754)Modifier.graphicsLayer
に追加された新しい合成戦略を利用してPicker
コンポーネントでテキストの揺れが発生する問題を修正しました。(I99302)DatePicker
デモでのちらつきの原因だったバグを修正しました。(I660bd)- 12 時間形式と日付選択ツールのデモのユーザー補助を改善しました。(I05e12)
- 時間形式と日付選択ツールのデモを更新し、選択ツールが選択解除時に RSB の変更の影響を受けないようにしました。(I4aecb)
バージョン 1.2.0-alpha01
2022 年 12 月 7 日
androidx.wear.compose:compose-*:1.2.0-alpha01
がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- 次のアニメーション ループが開始するのを待つのではなく、コンテンツの準備ができたらすぐに「ワイプオフ」効果が適用されるように、試験運用版のプレースホルダ機能を更新しました。また、シマーとワイプオフのアニメーションも更新しました。(I5a7f4)
API の変更
HierarchicalFocusCoordinator
コンポーザブルを追加して、コンポジションのサブツリーをフォーカス有効またはフォーカス無効としてマークできるようにしました。(I827cb)ToggleButton
のセマンティック ロールをオーバーライドする新しいプロパティを追加しました。(I67132)TimeText
の AM/PM を削除するようにTimeTextDefaults.TimeFormat12Hours
を更新しました。これにより、TimeText
API のtimeSource
パラメータのデフォルト値が変更されます。(I1eb7f)- マルチ選択ツールによる画面のユーザー補助機能を改善するために、Picker API を拡張しました。選択ツールがユーザーのスクロールに対してアクティブかどうかを制御する、新しいプロパティ
userScrollEnabled
が追加されました。(I3c3aa)
バグの修正
- 最終的な UX の仕様に合わせて、
OutlinedButton/OutlinedCompactButton
のデフォルトの枠線の太さを 2.dp から 1.dp に変更しました。(Icf84d) - 空の
ScalingLazyColumn
に最初に追加された項目が所定の位置でスクロールされるように見える効果を軽減するために、コンテンツが空のときに推定autoCentering topPadding
を追加しました。この変更により、最初の項目の高さ 0.dp であると想定して必要なトップ パディングの量が計算されます。ScalingLazyListAnchorType.ItemStart
の場合、正しいトップ パディングが計算されます。ScalingLazyListAnchorType.ItemCenter
の場合、この計算は正しくありません。これは、コンテンツのサイズを正しく設定するために項目の高さが必要なためです。その結果、項目の実際の高さに基づいて所定の位置で少しスクロールされるように見える効果が発生します。(I239a4) - Wear プラットフォームに合わせて
SwipeToDismiss
アニメーションに適用される背景スクリムを更新しました。(I9003e) - 0 で除算するエラーを回避するために、サイズ 0 のリスト項目に対する
LazyListState
とScalingLazyListState
のPositionIndicator
の処理を修正しました。(Ic28dd)
バージョン 1.1
バージョン 1.1.2
2023 年 2 月 8 日
androidx.wear.compose:compose-foundation:1.1.2
、androidx.wear.compose:compose-material:1.1.2
、androidx.wear.compose:compose-navigation:1.1.2
がリリースされました。バージョン 1.1.2 に含まれる commit については、こちらをご覧ください。
バグの修正
- 値が実際に変更された場合にのみ更新をプッシュするようにすることで
ScalingLazyListState.centerItemIndex
での不要な再コンポジションの原因となっていたバグを修正しました。(Ia9f38)
バージョン 1.1.1
2023 年 1 月 11 日
androidx.wear.compose:compose-foundation:1.1.1
、androidx.wear.compose:compose-material:1.1.1
、androidx.wear.compose:compose-navigation:1.1.1
がリリースされました。バージョン 1.1.1 に含まれる commit については、こちらをご覧ください。
バグの修正
rememberUpdatedState
を使用するようPlaceholderState.rememberPlaceholderState()
を更新し、onContentReady
ラムダの場合に状態が更新されるようにしました。(I02635、b/260343754)
バージョン 1.1.0
2022 年 12 月 7 日
androidx.wear.compose:compose-foundation:1.1.0
、androidx.wear.compose:compose-material:1.1.0
、androidx.wear.compose:compose-navigation:1.1.0
がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の重要な変更
- Wear OS 1.1.0 向け Compose の安定版リリースです(詳細)。
- Wear Compose 1.1 の主な変更点の一覧については、リリースノート(Compose for Wear OS 1.1 Beta01)をご覧ください。
新機能
- 次のアニメーション ループが開始するのを待つのではなく、コンテンツの準備ができたらすぐに「ワイプオフ」効果が適用されるように、試験運用版のプレースホルダ機能を更新しました。また、シマーとワイプオフのアニメーションも更新しました。(I5a7f4)
バグの修正
- 最終的な UX の仕様に合わせて、
OutlinedButton/OutlinedCompactButton
のデフォルトの枠線の太さを 2.dp から 1.dp に変更しました。(Icf84d) - 空の
ScalingLazyColumn
に最初に追加された項目が所定の位置でスクロールされるように見える効果を軽減するために、コンテンツが空のときに推定autoCentering topPadding
を追加しました。この変更により、最初の項目の高さ 0.dp であると想定して必要なトップ パディングの量が計算されます。ScalingLazyListAnchorType.ItemStart
の場合、正しいトップ パディングが計算されます。ScalingLazyListAnchorType.ItemCenter
の場合、この計算は正しくありません。これは、コンテンツのサイズを正しく設定するために項目の高さが必要なためです。その結果、項目の実際の高さに基づいて所定の位置で少しスクロールされるように見える効果が発生します。(I239a4) - Wear プラットフォームに合わせて
SwipeToDismiss
アニメーションに適用される背景スクリムを更新しました。(I9003e) - 0 で除算するエラーを回避するために、サイズ 0 のリスト項目に対する
LazyListState
とScalingLazyListState
のPositionIndicator
の処理を修正しました。(Ic28dd)
バージョン 1.1.0-rc01
2022 年 11 月 9 日
androidx.wear.compose:compose-foundation:1.1.0-rc01
、androidx.wear.compose:compose-material:1.1.0-rc01
、androidx.wear.compose:compose-navigation:1.1.0-rc01
がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
Placeholders
、ScrollAway
、RadioButton
、Switch
、Checkbox
、OutlinedButton
、OutlinedCompactButton
、OutlinedChip
、OutlinedCompactChip
のベースライン プロファイル ルールを追加しました。(I8249c)Modifier.scrollAway
のバグを修正しました。これにより、指定されたitemIndex
が無効である(たとえば、アイテム インデックスが範囲外である)場合でもTimeText
が表示されるようになりました。(I2137a)- プラットフォームの実装に合わせて
SwipeToDismissBox
アニメーションを更新しました。最初のスクイーズ アニメーションの後、非表示がトリガーされると、画面が右にスライドして隠れるようになります。(I41d34) - 最適化の一環として、
Modifier.scrollAway
を更新し、測定ブロック内のscrollState
のみを読み取るようにしました。これにより、再測定のたびに修飾子が再コンポーズされることを回避できます。(I4c6f1) - プレースホルダにドキュメントとサンプルを追加して、同じコンポーザブルに適用した場合の
Modifier.placeholder
とModifier.placeholderShimmer
の正しい順序を示しました。(Ie96f4、b/256583229) - 最終的な UX の仕様に合わせて、
OutlinedCompactChip/OutlinedChip
のデフォルトの枠線の太さを 2.dp から 1.dp に変更しました。(Ib3d8e) rememberPickerState
で更新された入力が保存されず、入力の変更後にコンポーザブルが更新されないバグを修正しました。(I49ff6、b/255323197)- プレースホルダの UI を更新し、1)シマー グラデーションを画面サイズの 1.5 倍に変更し、2)シマーの進行のイージング(3 次ベジェ)を追加し、3)wipeOff アニメーションを高速化しました(250 ミリ秒)。(Id29c1)
- 画面上のコンポーネントの位置が考慮されていないため、チップとカードの背景が少し早めに消えるという、プレースホルダの wipeOff エフェクトにおける UI のバグを修正しました。(I2c7cb)
- プレースホルダの背景の描画を更新して、可能であれば色を重ねるのではなく合成するようにしました。これにより、切り抜いた複数のレイヤのアルファ ブレンディングのリスクを減らし、プレースホルダの背景の端で下の色がはみ出ないようにしました。(I2ea26)
- ビューポートの中心線の両側に 2 つのアイテムが 1 つずつある場合、最も近いものが
centerItem
と見なされるように、ScalingLazyListState.centerItemIndex/centerItemOffset
の計算を修正しました。(I30709、b/254257769) ScalingLazyColumn
の初期化中に誤ったオフセットをレポートするScalingLazyListState.layoutInfo.visibleItemsInfo
のバグを修正しました。すべてのリスト アイテムが表示され、正しいオフセットが設定されるまで、空のリストが返されるようになりました。ScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty()
をチェックして、ScalingLazyColumn
の初期化が完了してアイテムが表示されていることを確認してください。(I3a3b8)
バージョン 1.1.0-beta01
2022 年 10 月 24 日
androidx.wear.compose:compose-foundation:1.1.0-beta01
、androidx.wear.compose:compose-material:1.1.0-beta01
、androidx.wear.compose:compose-navigation:1.1.0-beta01
がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
Wear OS 向け Compose 1.1 の概要
Wear OS 向け Compose 1.1.0-beta01 では、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました。
- Wear Compose 1.1 リリースには、次の新機能が含まれています。
- Picker - Picker のユーザー補助機能を改善して、マルチ選択ツールの画面をスクリーン リーダーで操作できるようにし、コンテンツの説明をわかりやすくしました。
- Picker の
contentDescription
パラメータが、選択された Picker オプションでのみ使用され、null 許容型の文字列を取るようになりました(以前の commit では、オプションからのマッピングをコンテンツの説明に渡す必要がありましたが、選択されたオプションしか使用されませんでした)。 - Picker の項目が常に中央揃えになり、
gradientRatio
をゼロに設定すると配置が変更されるという副作用のバグを修正しました。 Chip/ToggleChip
- 最新の UX 仕様に合わせてChip/ToggleChip
のデフォルト グラデーションを更新しました。プライマリの 32.5% ではなく 50% から開始するようにChipDefaults.gradientBackgroundChipColors
を更新しました。Chip/ToggleChip
- チップ形状を変更するためのオーバーロードを追加しました。Chip/Button/ToggleButton
- チップとボタン用の新しい枠線付きスタイルと、細い枠線付きの透明なChip/Button
を提供する新しいコンポーザブルOutlinedChip
およびOutlinedButton
を追加しました。- カード - 最新の UX 仕様に合わせてカードのデフォルトのグラデーションを更新しました。プライマリの 30% から開始して
onSurfaceVariant
の 20% で終了するようにCardDefaults.cardBackgroundPainter
を更新しました(以前は 20% から開始してonSurfaceVariant
の 10% で終了していました)。ToggleChip.toggleChipColors
は、「75% サーフェスから 32.5% プライマリへの線形グラデーション」から「0% サーフェスから 50% プライマリへの線形グラデーション」に変わります。 Button/ToggleButton
- ボタンの形状を変更するためのプロパティを追加しました。- テーマ - ユーザー補助機能の改善のため、
MaterialTheme
のデフォルトの色をいくつか更新しました。元の色はコントラストが不十分だったため、ユーザーがチップ / カード / ボタンの背景をテーマの背景色から区別することが困難でした。 InlineSlider/Stepper
-Talkback
がこれらをボタンとして認識できるように、ボタンの役割を追加しました。- Scaffold - 必要なスペースのみを占有するよう
PositionIndicator
が配置されてサイズが設定されるようになりました。これは、セマンティック情報が追加された場合などに役立ち、TalkBack が画面上のPositionIndicator
の正しい境界を取得するようになりました。 CurvedText/TimeText
- スクロール状態に応じて、ビューの内 / 外に垂直方向に項目をスクロールするModifier.scrollAway
を追加しました(オーバーロードによってColumn
、LazyColumn
、ScalingLazyColumn
と連動します)。一般に、ユーザーが項目リストを上方向にスクロールし始めたときはScrollAway
を使用してビューの外にTimeText
をスクロールします。CurvedText/TimeText
-CurvedTextStyle
にfontFamily
、fontStyle
、fontSynthesis
のサポートを追加しました。curvedText
とbasicCurvedText
で使用できます。CurvedText/TimeText
-CurvedTextStyle
のコンストラクタとコピーメソッドにfontWeight
を追加しました。ToggleControls
-ToggleChip
とSplitToggleChip
で使用するアニメーション切り替えコントロールとしてCheckbox
、Switch
、RadioButton
を追加しました。これらは、ToggleChipDefaults
によって提供される静的アイコン(switchIcon
、checkboxIcon
、radioIcon
)の代わりに使用できます。- プレースホルダ - 試験運用版のプレースホルダのサポートを追加しました。このサポートには、一緒に動作するように設計された 3 種類の視覚効果があります。
- 1 つ目は、チップやカードなどのコンテナで使用するプレースホルダの背景ブラシ エフェクトで、コンテンツの読み込みを待つときに、通常の背景の上に描画されるものです。
- 2 つ目は、読み込まれているコンテンツの上にスタジアムの形のプレースホルダ ウィジェットを描画する修飾子(
Modifier.placeholder()
)です。 - 3 つ目は、データの読み込みを待っていることをユーザーに伝えるために、他のエフェクトの上に重ねて表示される修飾子のグラデーション / シマー エフェクト(
Modifier.placeholderShimmer()
)です。- これらすべてのエフェクトは協調して動作し、きらめいた後に消えるように設計されています。
- Core Compose の依存関係を 1.2 から 1.3 に更新しました。
API の変更
- フォント パラメータ(
fontFamily
、fontWeight
、fontStyle
、fontSynthesis
)をcurvedText
のパラメータとして直接指定できるようになりました。(Idc422)
バグの修正
curveText
とbasicCurvedText
が TalkBack で適切に動作するようになりました(適切なサイズで配置される(ただし空の)compose-ui ノードが関連付けられ、テキストをコンテンツの説明として使用します)。(I7af7c、b/210721259)PickerState.repeatedItems = false
の場合のPicker
のバグを修正し、Picker の内部ScalingLazyColumn
に autoCentering パラメータの明示的な設定を追加しました。これにより、ゼロ番目のオプションをビューの中央にスクロールできるようになります。(I8a4d7)
バージョン 1.1.0-alpha07
2022 年 10 月 5 日
androidx.wear.compose:compose-foundation:1.1.0-alpha07
、androidx.wear.compose:compose-material:1.1.0-alpha07
、androidx.wear.compose:compose-navigation:1.1.0-alpha07
がリリースされました。バージョン 1.1.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
- 試験運用版のプレースホルダのサポートを追加しました。このサポートには、一緒に動作するように設計された 3 種類の視覚効果があります。1 つ目は、チップやカードなどのコンテナで使用するプレースホルダの背景ブラシ エフェクトで、コンテンツの読み込みを待つときに、通常の背景の上に描画されるものです。2 つ目は、読み込まれているコンテンツの上にスタジアムの形のプレースホルダ ウィジェットを描画する修飾子(
Modifier.placeholder()
)です。3 つ目は、データの読み込みを待っていることをユーザーに伝えるために、他のエフェクトの上に重ねて表示される修飾子のグラデーション / シマー エフェクト(Modifier.placeholderShimmer()
)です。これらすべてのエフェクトは協調して動作し、きらめいた後に消えるように設計されています。(I3c339)
API の変更
CurvedTextStyle
にfontWeight
、fontFamily
、fontStyle
、fontSynthesis
のサポートを追加しました。curvedText
とbasicCurvedText
で使用できます。これらのパラメータを使用して、曲線テキストで使用するフォントとスタイルを指定できます。(Iaa1a8)、(I72759)Modifier.offset
との一貫性を保つため、Modifier.scrollAway
のオフセット パラメータを Dp に更新しました(以前はピクセル単位で表示)。また、効率化のためにLayoutModifier
としてリファクタリングしました。(I9f94b)- 新しい切り替えコントロール API の一部として、
RadioButton’s circleColor
の名前をringColor
に変更しました。(I28fa9) ToggleChip
とSplitToggleChip
で使用するアニメーション切り替えコントロールとしてCheckbox
、Switch
、RadioButton
を追加しました。これらは、ToggleChipDefaults
によって提供される静的アイコン(switchIcon
、checkboxIcon
、radioIcon
)の代わりに使用できます。(I8a8c4)
バージョン 1.1.0-alpha06
2022 年 9 月 21 日
androidx.wear.compose:compose-foundation:1.1.0-alpha06
、androidx.wear.compose:compose-material:1.1.0-alpha06
、androidx.wear.compose:compose-navigation:1.1.0-alpha06
がリリースされました。バージョン 1.1.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- スクロール状態に応じて、ビューの内 / 外に垂直方向に項目をスクロールする
Modifier.scrollAway
を追加しました(オーバーロードによってColumn
、LazyColumn
、ScalingLazyColumn
と連動します)。一般に、ユーザーが項目リストを上方向にスクロールし始めたときはScrollAway
を使用してビューの外にTimeText
をスクロールします。(I61766)
バグの修正
- 必要なスペースのみを占有するよう
PositionIndicator
が配置されてサイズが設定されるようになりました。これは、セマンティック情報が追加された場合などに役立ち、TalkBack が画面上のPositionIndicator
の正しい境界を取得するようになりました。(Ie6106、b/244409133)
バージョン 1.1.0-alpha05
2022 年 9 月 7 日
androidx.wear.compose:compose-foundation:1.1.0-alpha05
、androidx.wear.compose:compose-material:1.1.0-alpha05
、androidx.wear.compose:compose-navigation:1.1.0-alpha05
がリリースされました。バージョン 1.1.0-alpha05 に含まれる commit については、こちらをご覧ください。
バグの修正
- Talkback がボタンとして認識できるように、
InlineSlider
とStepper
にボタンの役割が追加されました。(Icb46c、b/244260275) - Scaffold で位置とページ インジケーターの Z オーダーを修正しました。インジケーターは周辺減光の上に表示されるようになりました。そのため、周辺減光が存在する場合に、インジケーターが周辺減光によって隠れることはなくなります。(Ib988f、b/244207528)
バージョン 1.1.0-alpha04
2022 年 8 月 24 日
androidx.wear.compose:compose-foundation:1.1.0-alpha04
、androidx.wear.compose:compose-material:1.1.0-alpha04
、androidx.wear.compose:compose-navigation:1.1.0-alpha04
がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
- ユーザー補助機能の改善のため、MaterialTheme のデフォルト色をいくつか更新しました。元の色はコントラストが十分でなく、チップや、カード、ボタンの背景と、テーマの背景色をユーザーが区別しにくかったためです。更新した色は、surface(0xFF202124 -> 0xFF303133)、onPrimary(0xFF202124 -> 0xFF303133)、onSecondary(0xFF202124 -> 0xFF303133)、primaryVariant(0xFF669DF6 -> 0xFF8AB4F8)、onError(0xFF202124 -> 0xFF000000)です。比較的わずかな変更であっても、色の変更は、既存のスクリーンショット テストに影響を与える可能性があります。(81ab09)
バグの修正
- 項目数が少ない(一般に項目が 2 個の)リストの初期化が完了せず、透明になることがあるという
ScalingLazyColumn
のロジックのバグを修正しました。(504347)
バージョン 1.1.0-alpha03
2022 年 8 月 10 日
androidx.wear.compose:compose-foundation:1.1.0-alpha03
、androidx.wear.compose:compose-material:1.1.0-alpha03
、androidx.wear.compose:compose-navigation:1.1.0-alpha03
がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
Chips
とButtons
の新しい枠線付きスタイルと、OutlinedChip
とOutlinedButton
の新しいコンポーザブルを新たに追加しました。これにより、細い枠線付きの透明なChip/Button
を利用できます。(Id5972)
API の変更
- ボタン形状を変更するためのオーバーロードを追加しました。(Icccde)
バグの修正
- UX 仕様と一致しないため、
ToggleChip
の切り替えコントロール領域のサイズを修正しました。UX 仕様では、ラベルと 24x24.dp の切り替えコントロール アイコン領域との間に 4.dp のスペーサーを設ける(合計で 28.dp の幅になる)ことになっています。しかし、実装時に切り替えコントロール領域が誤って 36x24.dp になってしまい、使用可能なテキストラベルの領域が 8.dp 減っていました。注: このバグの修正によってテキストラベル用のスペースが広がるため、テキストのレイアウトに影響を及ぼす(テキストがはみ出さなくなる)可能性があります。ToggleChips
を含むスクリーンショット テストがある場合は、更新の必要があるかもしれません。(I514c8、b/240548670)
バージョン 1.1.0-alpha02
2022 年 7 月 27 日
androidx.wear.compose:compose-foundation:1.1.0-alpha02
、androidx.wear.compose:compose-material:1.1.0-alpha02
、androidx.wear.compose:compose-navigation:1.1.0-alpha02
がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- コア Compose ライブラリでの Wear OS 向け Compose の依存関係を 1.2.0 から 1.3.0-alpha0X に切り替えました。
API の変更
- チップ形状を変更するためのオーバーロードを追加しました。(I02e87)
バグの修正
- 既存のスケーリング アニメーションと整合するよう、ダイアログの表示 / 非表示時に周辺減光される状態の可視性をアニメーション化しました。(Ida33e)
- スクロール時の一部のフリング動作でゼロ除算が発生することがあるバグを修正しました。(I86cb6)
- 無効な背景色が完全に透明になるよう
ChipDefaults.childChipColor()
のバグを修正しました。(I2b3c3、b/238057342)
バージョン 1.1.0-alpha01
2022 年 6 月 29 日
androidx.wear.compose:compose-foundation:1.1.0-alpha01
、androidx.wear.compose:compose-material:1.1.0-alpha01
、androidx.wear.compose:compose-navigation:1.1.0-alpha01
がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
- Picker の
contentDescription
パラメータが、選択された Picker オプションでのみ使用され、null 許容型の文字列を取るようになりました(以前は、オプションからのマッピングをコンテンツの説明に渡す必要がありましたが、選択されたオプションしか使用されませんでした)。(Ife6a7) - Picker のユーザー補助機能を改善し、マルチ選択ツール画面をスクリーン リーダーで操作したり、コンテンツの説明にアクセスしたりできるようにしました。(I64edb)
バグの修正
- Wear Compose ライブラリにパッケージ化されているベースライン プロファイル ルールを更新しました。(I9c694)
- 「右から左」モードの場合のチップのグラデーションの方向を修正しました。以前は「左上 -> 右下」でしたが、現在は「右上 -> 左下」になりました。(Ic2e77)
- 最新の UX 仕様に合わせて
Chip/ToggleChip/Card
のデフォルトのグラデーションを更新しました。プライマリの 32.5% ではなく 50% から開始するようにChipDefaults.gradientBackgroundChipColors
を更新しました。プライマリの 30% から開始してonSurfaceVariant
の 20% で終了するようにCardDefaults.cardBackgroundPainter
を更新しました(以前は 20% から開始してonSurfaceVariant
の 10% で終了していました)。ToggleChip.toggleChipColors
は、「75% サーフェスから 32.5% プライマリへの線形グラデーション」から「0% サーフェスから 50% プライマリへの線形グラデーション」に変わります。(I43bbd) - 万一、背後で明るい色が使用された場合に適切に表示されるように、グラデーションの背景を持つ
Chip/ToggleChips
の背後に背景色(MaterialTheme.color.surface
)を追加しました。(Ibe1a4、b/235937657) - Picker の項目が常に中央揃えになり、
gradientRatio
をゼロに設定すると配置が変更されるという副作用のバグを修正しました。(I712b8)
バージョン 1.0
バージョン 1.0.2
2022 年 9 月 7 日
androidx.wear.compose:compose-foundation:1.0.2
、androidx.wear.compose:compose-material:1.0.2
、androidx.wear.compose:compose-navigation:1.0.2
がリリースされました。バージョン 1.0.2 に含まれる commit については、こちらをご覧ください。
バグの修正
- Scaffold で位置とページ インジケーターの Z オーダーを修正しました。インジケーターは周辺減光の上に表示されるようになりました。そのため、周辺減光が存在する場合に、インジケーターが周辺減光によって隠れることはなくなります。(Ib988f、b/244207528)
バージョン 1.0.1
2022 年 8 月 24 日
androidx.wear.compose:compose-foundation:1.0.1
、androidx.wear.compose:compose-material:1.0.1
、androidx.wear.compose:compose-navigation:1.0.1
がリリースされました。バージョン 1.0.1 に含まれる commit については、こちらをご覧ください。
バグの修正
- 項目数が少ない(一般に項目が 2 個の)リストの初期化が完了せず、透明になることがあるという
ScalingLazyColumn
のロジックのバグを修正しました。(076c61)
バージョン 1.0.0
2022 年 7 月 27 日
androidx.wear.compose:compose-foundation:1.0.0
、androidx.wear.compose:compose-material:1.0.0
、androidx.wear.compose:compose-navigation:1.0.0
がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください。
1.0.0 の主な機能
- これは、Wear OS 向け Compose の最初の安定版リリースです(詳細)。
- Wear OS 向け Compose は、コア Compose ライブラリをベースとして、追加のウェアラブル固有コンポーネントと、必要に応じて、ウェアラブル デバイスに合わせて調整されたコア Compose コンポーネントの別の実装を提供します。
- Wear Compose の主なコンポーネントのリストについては、リリースノート(Compose for Wear OS Beta01)をご覧ください。
バグの修正
- 既存のスケーリング アニメーションと整合するよう、ダイアログの表示 / 非表示時に周辺減光される状態の可視性をアニメーション化しました。(Ida33e)
- スクロール時の一部のフリング動作でゼロ除算が発生することがあるバグを修正しました。(I86cb6)
- 無効な背景色が完全に透明になるよう
ChipDefaults.childChipColor()
のバグを修正しました。(I2b3c3、b/238057342)
バージョン 1.0.0-rc02
2022 年 6 月 22 日
androidx.wear.compose:compose-foundation:1.0.0-rc02
、androidx.wear.compose:compose-material:1.0.0-rc02
、androidx.wear.compose:compose-navigation:1.0.0-rc02
がリリースされました。バージョン 1.0.0-rc02 に含まれる commit については、こちらをご覧ください。
バグの修正
- 右から左(RTL)モードの場合のカードのグラデーションの方向を修正しました。以前は「左上 -> 右下」でしたが、現在は「右上 -> 左下」になりました。(Ic2e77)
- 最新の UX 仕様に合わせて
Chip/ToggleChip/Card
のデフォルトのグラデーションを更新しました。プライマリの 32.5% ではなく 50% から開始するようにChipDefaults.gradientBackgroundChipColors
を更新しました。プライマリの 30% から開始してonSurfaceVariant
の 20% で終了するようにCardDefaults.cardBackgroundPainter
を更新しました(以前は 20% から開始して onSurfaceVariant の 10% で終了していました)。ToggleChip.toggleChipColors
は、「75% サーフェスから 32.5% プライマリへの線形グラデーション」から「0% サーフェスから 50% プライマリへの線形グラデーション」へと変わります。(I43bbd) - 万一、背後で明るい色が使用された場合に適切に表示されるように、グラデーションの背景を持つ
Chip/ToggleChips
の背後に背景色(MaterialTheme.color.surface
)を追加しました。(Ibe1a4、b/235937657) - Wear Compose ライブラリにパッケージ化されているベースライン プロファイル ルールを更新しました。(I9c694)
バージョン 1.0.0-rc01
2022 年 6 月 15 日
androidx.wear.compose:compose-foundation:1.0.0-rc01
、androidx.wear.compose:compose-material:1.0.0-rc01
、androidx.wear.compose:compose-navigation:1.0.0-rc01
がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
API の変更
- compose ライブラリのインターフェースが jdk8 デフォルト インターフェース メソッドを使ってビルドされるようになりました。(I5bcf1)
バグの修正
- リストのヘッダーでの
fillMaxWidth()
の明示的な呼び出しは、ScalinglazyColumn
にListHeader()
コンポーネントとChip()
コンポーネントが混在している場合には不要であり、問題が発生する可能性があるため、削除しました。ListHeader
のアイテムは、スクロールされて表示 / 非表示になるときに幅が拡大 / 縮小される傾向にあるためです。(I37144、b/235074035) ScalingLazyColumn
のバグを修正しました。このバグは、0 番目のリストアイテムが(パディングを含めて)十分に大きい場合に、スクロールされるまでリストアイテムが正しく描画されない原因となっていました。(Ic6159、b/234328517)- UX 仕様の更新に合わせて、アイテムが画面の端に達したときの
ScalingLazyColumn
のイージングを若干調整しました。以前の値CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f)
-> 新しい値CubicBezierEasing(0.3f, 0f, 0.7f, 1f)
。以前の動作を維持するには、ScalingLazyColumn
のscalingParams
をオーバーライドできます。(Ie375c) - マテリアルのユーザー補助ガイドラインに沿ってタップ ターゲットのサイズが高さ 48 dp 以上になるように、
CompactChip
にパディングを追加しました。追加のスペースを取ることになるため、CompactChips
を使用するレイアウトがある場合は、この変更の影響を受ける可能性があります。(I3d57c)
バージョン 1.0.0-beta03
2022 年 6 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-beta03
、androidx.wear.compose:compose-material:1.0.0-beta03
、androidx.wear.compose:compose-navigation:1.0.0-beta03
がリリースされました。バージョン 1.0.0-beta03 に含まれる commit については、こちらをご覧ください。
新機能
ScalingLazyColumn
が Compose@Preview
モードで機能するようになりました。(I3b3b6、b/232947354)
API の変更
- リストアイテムが列の幅全体に広がらない場合、できる限り見やすくなるよう配置されるように、
ScalingLazyColumn.horizontalAlignment
プロパティのデフォルト値を Start からCenterHorizontally
に変更しました。以前の動作に戻すには、horizontalAlignment = Alignment.Start
を設定します。(I9ed4b)
既知の問題
- CompactChip のタップの高さがマテリアルのユーザー補助ガイドラインよりも小さくなっています。この問題は次のリリース(6 月 15 日)で修正される予定です。CompactChip の上下にパディングが追加されるため、CompactChip を使用している場合は、この修正がレイアウトに影響を与えます。レイアウトを調整してテストするか、既存の動作を使用する場合はバグコメントで回避策を確認してください。(b/234332135)
バグの修正
TimeText
で開始テキストの追加または削除をアニメーション化する新しいデモ。(I16d75)HorizontalPageIndicator.PagesState
のテストを追加しました。(I64ed0)TimeText
を UX 仕様に近づけて更新しました。(Ib7ea1)
バージョン 1.0.0-beta02
2022 年 5 月 18 日
androidx.wear.compose:compose-foundation:1.0.0-beta02
、androidx.wear.compose:compose-material:1.0.0-beta02
、androidx.wear.compose:compose-navigation:1.0.0-beta02
がリリースされました。バージョン 1.0.0-beta02 に含まれる commit については、こちらをご覧ください。
新機能
- 選択ツールが、読み取り専用モードの場合でも、常にスクロール イベントに応答するようになりました。これにより、ユーザーはスクロールする前に、まずタップして選択ツールを選択する必要がなくなります。読み取り専用モードでは、現在選択されているオプション以外のオプションは、
gradientColor
の shim によって隠れます。(I72925) Chip/ToggleChip/CompactChip/SplitToggleChip
の UX 動作を変更し、デフォルトでfillMaxWidth
を実行できないようにしました。代わりに、コンテンツに合わせて大きくなります。以前の動作を維持するには、modifier = Modifier.fillMaxWidth()
を追加します(I60a2c、b/232206371)
バグの修正
TextStyle
を受け取るCurvedTextStyle
コンストラクタがfontWeight
も考慮するようになりました(これは、API の今後のリビジョンでコンストラクタとコピーメソッドに追加される可能性があります)(Ieebb9)- エッジスワイプの改善。
Modifier.edgeSwipeToDismiss
が使用されており、左へのスワイプがエッジエリアからトリガーされた場合、スワイプの向きが右に変更されたときにスワイプによる非表示がトリガーされることがなくなりました。以前は、左にスワイプしてから右にスワイプすることで、スワイプによる非表示をトリガーできました(I916ea) HorizontalPageIndicator
が画面に最大 6 ページ表示されるようになりました。合計で 6 ページを超える場合は、左または右に半分のサイズのインジケーターが表示され、ページ間の移動がスムーズになります。(I2ac29)ScalingLazyColumn
とPicker
のデフォルトのスナップ動作を改善しました(I49539)- エッジスワイプの改善。
Modifier.edgeSwipeToDismiss
が使用されている場合、スワイプによる非表示は、最初のタップが端に到達して右にスワイプしたときのみトリガーされます。以前は、スクロールが開始点に達したら画面の任意の場所からスワイプすることで、スワイプによる非表示をトリガーできました。(I8ca2a)
バージョン 1.0.0-beta01
2022 年 5 月 11 日
androidx.wear.compose:compose-foundation:1.0.0-beta01
、androidx.wear.compose:compose-material:1.0.0-beta01
、androidx.wear.compose:compose-navigation:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
Wear OS 1.0 の Compose の概要
Wear OS の Compose の 1.0.0-beta01
は、ライブラリの機能が完成し、API がロックされているため、重要なマイルストーンとしてマークしています。
1.0 リリースの Wear Compose Material コンポーネントには、次のものがあります。
- マテリアル テーマ - モバイル デバイス用の
MaterialTheme
の代替として使用され、Wear マテリアル デザインの UX ガイドラインを初期設定の状態で実装するウェアラブルでコンポーネントをビルドする際の色、形状、タイポグラフィを指定します。 Button
、CompactButton
、ToggleButton
- ボタンには、アイコン、画像、短いテキスト(最大 3 文字)を取得するためのスロットが 1 つ用意されています。デフォルト ボタン、大ボタン、小ボタンに推奨されるサイズの円形。CompactButton
は、コンテンツ(アイコン、画像、テキスト)を取得できる単一のスロットを備えており、背景がひときわ小さなサイズの円形です。CompactButton
には、クリック可能な領域を拡大する背景の周囲にオプションとして透明なパディングを備えています。ToggleButton
は、コンテンツ(短いテキスト、アイコン、画像)の取得を 1 つのスロットで行うボタンです。色分けとさまざまなアイコンでオン / オフ(チェックマークあり / チェックマークなし)の状態を示し、オン / オフのいずれであるかを表示します。- カード - 通知などのアプリケーションに関する情報を表示するために使用します。
AppCard
とTitleCard
のさまざまなユースケースで柔軟な設計を実現し、異なるレイアウトが用意されており、カードのコンテンツまたは背景として画像をサポートします。 - チップ - ボタンに類似したスタジアムの形のコンポーネントですが、エリアが広くなり、ラベル、セカンダリ ラベル、アイコン用の複数のスロットを備えています。さまざまなサイズで、背景としての画像をサポートしています。
- ToggleChip と SplitToggleChip - オン / オフの状態のチップで、コンポーネントにチェックマークが入れられた状態を表示するスイッチやラジオボタンなどのアイコンを表示する
ToggleControl
スロットが追加されています。また、SplitToggleChip
には 2 つ(クリック可能と切り替え可能)のタップ可能な領域があります。 - CircularProgressIndicator - 2 つのパターンの Wear マテリアル進行状況インジケーター。1 つ目は、進行中のタスクの完了割合を表し、開始角度と終了角度の間の円形トラックのギャップをサポートします。2 つ目は、不特定の待機時間における不確定な進行状況を示します。
- curvedText -
curvedRow
とcurvedColumn
とともにCurvedLayouts
を記述し、円形デバイスの周囲にコンポーネントをレイアウトするための DSL の一部を構成します。CurvedLayout
とCurvedModifier
の詳細については、以下の Wear Component Foundation をご覧ください(これは、曲線でない世界で修飾子と同様の役割を果たし、レイアウト、パディング、グラデーションなどのさまざまな要素の構成を可能にします)。 - ダイアログ、アラート、確認 - ダイアログは、他のコンテンツの上に重ねて全画面ダイアログを表示し、スワイプして閉じることができます。アラートや確認など、Wear マテリアルの独自のダイアログ コンテンツとみなされる単一のスロットを取ります。アラートは独自のダイアログ コンテンツであり、アイコン、タイトル、メッセージ用のスロットが含まれます。横に並んだ 2 つのネガティブ ボタンとポジティブ ボタン、または 1 つ以上の垂直に積み重ねられたチップのスロットで過負荷が発生します。確認は、一定期間のメッセージを表示する独自のダイアログ コンテンツです。このファイルには、アイコンや画像(アニメーション表示が可能)用のスロットが用意されています。
- HorizontalPageIndicator - ウェアラブルのフォーム ファクタに適した方法で水平方向のページ位置を表示します。全画面表示を行い、円形のデバイスに曲線インジケーターを表示するように設計されています。Accompanist ページビューアで使用できます。
- アイコン - Wear のマテリアル テーマから色とアルファを取得するアイコンの Wear 実装。クリック可能なアイコンについては、ボタンまたはチップをご覧ください。
- 選択ツール - スクロール可能な選択候補アイテムのリストを表示します。デフォルトでは、アイテムは両方向に「無限」に繰り返されます。読み取り専用モードで表示し、未選択のオプションを非表示にできます。
- PositionIndicator - ウェアラブルのフォーム ファクタに適した方法で、スクロール位置またはその他の位置を表示します。全画面表示を行い、円形のデバイスに曲線インジケーターを表示するように設計されています。
- Scaffold - 基本的な Wear マテリアル デザインの視覚レイアウト構造を実装します。このコンポーネントには、画面を構成する複数の Wear マテリアル コンポーネント(
TimeText
、PositionIndicator
、Vignette
など)をまとめる API が用意されており、それらのコンポーネントに適したレイアウト戦略を策定し、必要なデータを収集してコンポーネントが正しく連携するようにできます。 - ScalingLazyColumn - Wear マテリアル デザイン言語の主要部分を形成するスクロールのスケーリング / 魚眼リスト コンポーネントです。コンテンツ アイテムにスケーリングと透過性効果をもたらします。
ScalingLazyColumn
は、膨大な量に達する可能性があるコンテンツ アイテムを処理できるように設計されています。コンテンツ アイテムは、必要なときにのみ実体化されて構成されます。 - Slider - 使用することでユーザーは値の範囲から選択できます。選択範囲はバーとして表示され、必要に応じてセパレータを追加して表示できます。
- Stepper - 画面の上部と下部に配置された増加 / 減少ボタンを使用し、テキストまたはチップの中央にあるスロットを使用して、ユーザーが特定の値の範囲から選択できるようにする全画面コンポーネント。
- SwipeToDismissBox - スワイプして閉じる操作を処理します。1 つのスロットを取り、背景(スワイプ操作中にのみ表示される)とフォアグラウンドのコンテンツを配置します。必要に応じて、
SwipeDismissableNavHost
を使用して androidx ナビゲーション ライブラリと組み合わせることができます(以下の Wear Compose Navigation ライブラリをご覧ください)。 - テキスト - Wear のマテリアル テーマから色とアルファを取得する Compose マテリアル テキスト コンポーネントの Wear 実装。
- TimeText - 画面上部に時刻とアプリケーションのステータスを表示するためのコンポーネント。円形の画面で曲線テキストを使用して、画面の形状に合わせて調整します。
周辺減光 - Scaffold で使用する画面処理であり、スクロール可能なコンテンツを使用しているときに画面の上と下をぼかします。
Wear Compose Foundation の次のコンポーネントも含まれています。
CurvedLayout - Wear Foundation
CurvedLayout
は、子を円弧に配置し、必要に応じて回転させるレイアウト コンポーザブルです。これは、環状のセグメントに曲線で表される行レイアウトに類似しています。CurvedLayout
の内容はコンポーズ可能なラムダではなく、DSL(ドメイン固有の言語)です。CurvedLayout の DSL 内のすべての要素は、CurvedModifier
から作成されたオプションの修飾子パラメータをサポートしています。basicCurvedText -
CurvedLayout
DSL の要素であるbasicCurvedText
を使用すると、デベロッパーは円の曲率に沿って(通常は円形の画面の端)、曲線テキストを簡単に記述できます。basicCurvedText
は、配置を指定できるようにする、CurvedModifiers
を使用するなど、最適な環境を確保するために、CurvedLayout
内でのみ作成できます。なお、ほとんどの場合にマテリアル テーマ設定を使用する curvedText を使用する必要があります。curvedComposable - 通常のコンポーザブルのコンテンツをラップし、
CurvedLayout
で使用できるようにします。curvedComposable
の内部に複数の要素がある場合、それらは互いに重なり合って描画されます(ボックスなど)。複数のコンポーザブルを曲線に沿って配置するには、各コンポーザブルをcurvedComposable
でラップします。curvedRow と curvedColumn - 行と列と同様に、
curvedRow
とcurvedColumn
をCurvedLayout
内にネストして、必要に応じて要素をレイアウトできます。curvedRow
の場合は、角度レイアウトの方向と半径方向の配置を指定できます。curvedColumn
の場合は、角度調整と半径方向を指定できます。CurvedModifier - すべての曲線コンポーネントで、
CurvedModifier
を使用して作成可能な修飾子パラメータを使用できます。背景、サイズ、重量、パディングがサポートされています。Wear Compose Navigation の以下のコンポーネントも含まれています。
SwipeDismissableNavHost - Compose 階層内に、自己完結型ナビゲーションが行われる場所を指定し、スワイプ操作による後方ナビゲーションを可能にします。コンテンツは
SwipeToDismissBox
内に表示され、現在のナビゲーション レベルを示します。「スワイプして閉じる」の操作中、前のナビゲーション レベルがあれば、そのレベルがバックグラウンドで表示されます。配信されたアルファ版について詳しくは、以前のアルファ版のリリースノートをご覧ください。
API の変更
CurvedModifier.padding*
関数を追加しました。これらは、曲線コンポーネントの周囲に追加する領域を指定するために使用されます。(I4dbb4)CompositionLocal
内部クラスを削除しました(I42490)Button
、CompactButton
、ToggleButton
の各アイコンサイズに定数値を追加しました(I57cab)AppCard
とTitleCard
に有効化されているパラメータを追加しました。これで、androidx.compose.material
カードに類似した API を使用できるようになりました。このパラメータを false に設定した場合、カードはクリックできません。(Idc48d、b/228869805)
バグの修正
- Stepper では、下限 / 上限に達したときの減少ボタンと増加ボタンが無効化されるようになりました(さらに、ContentAlpha.disabled が iconColor に適用されます)。(I4be9f)
- スワイプ時にテキストのジッターが表示されるを回避するために、グラデーションで描画するときの選択ツール コンテンツの周囲に 1 dp のパディングを追加しました。(I0b7b9)
PositionIndicator
のスクリーンショット テストを追加しました。(I5e8bc)AppCard
とTitleCard
のテストを追加しました。(I85391、b/228869805)
バージョン 1.0.0-alpha21
2022 年 4 月 20 日
androidx.wear.compose:compose-foundation:1.0.0-alpha21
、androidx.wear.compose:compose-material:1.0.0-alpha21
、androidx.wear.compose:compose-navigation:1.0.0-alpha21
がリリースされました。バージョン 1.0.0-alpha21 に含まれる commit については、こちらをご覧ください。
新機能
- 曲線要素の背景を指定する新しい曲線修飾子
CurvedModifier.background
、.radialGradientBackground
、.angularGradientBackground
を追加しました。(I8f392) - 曲線テキストのオーバーフロー モード(clip / ellipsis / visible)を指定できるようになりました。(I8e7aa)
- Compose の修飾子と同様の
CurvedModifier.weight
修飾子を追加しました。これは、carvedRow と CurvedLayout の子(幅の場合)、curvedColumn の子(高さの場合)で使用できます。(I8abbd) - 曲線要素のサイズを指定する修飾子
CurvedModifier.size
、.angularSize
、.radialSize
を追加しました。(I623c7)
API の変更
- パラメータの順序を変え、Wear Compose API 全体で一貫して背景が色の前にくるようにしました。(I43208)
- clockwise と
insideOut
のパラメータを削除し、新しいクラスのよりわかりやすい定数に置き換えました。曲線レイアウト方向がLayoutDirection
に対応できるようになり、指定しない場合は継承されます(If0e6a) ScalingLazyColumn
に関する API の問題を修正するために、autoCenter: Boolean
をautoCenter: AutoCentringParams
に置き換えました。(Ia9c90)- 色がアイコン / toggleControl スロットに適用されるため、API 全体(Chip / ToggleChip / Dialog / Slider / Stepper / ...)で
iconTintColor
とtoggleControlTintColor
の名前をiconColor
とtoggleControlColor
に変更しました。(Ied238) PageIndicatorStyle
列挙型を値クラスに書き換えました(I2dc72)- レイアウトの前提条件をデベロッパーに示せるように、コンポーザブルの一部のスロットに
RowScope/ColumnScope/BoxScope
を追加しました。これにより、デベロッパーは一部のスロット コンテンツで追加の修飾子を使用でき、追加のレイアウト要素を提供する必要がなくなります。さらに、timeColor
とappColor
のデフォルト値がcontentColor
になるように、AppCard / TitleCard の色にマイナー アップデートを加えました。これらのプロパティは、必要に応じてすべて個別にオーバーライドできます。(I26b59) SwipeToDismissBoxState.Companion
オブジェクトを非公開にしました(I39e84)InlineSlider
とStepper
のパラメータの順序を修正しました。API ガイドラインを遵守するための簡単な変更です(I11fec)SwipeToDismissBoxState
のセーバー オブジェクトは使用されていないため、削除しました。(Ifb54e)- 最新の UX 仕様に沿うように
CompactChip
を更新しました。パディングは水平 = 12.dp、垂直 = 0.dp に縮小されました。ラベルのフォントがボタンから caption1 に変更されました。推奨されるアイコンサイズは、アイコンとラベルの両方がある場合は 20x20、アイコンのみのコンパクト チップの場合は 24x24 です。また、アイコンのみのユースケースでは、アイコンが中央揃えになるようにしました。(Iea2be) - 適用された
contentPadding
とautoCenteringPadding
の量をデベロッパーが把握できるように、ScalingLazyListLayoutInfo
にいくつかの新しいフィールドを追加しました。これらは、フリング / スクロールの計算時にデベロッパーにとって便利です(I7577b) - ダイアログの入出力遷移を実装しました。
showDialog
パラメータが追加され、ダイアログ自体で可視性を制御できるようになりました(これにより、ダイアログの表示 / 非表示の切り替え時に、ダイアログでイントロとエンディングのアニメーションを実行できます)。ユーザーがスワイプして閉じる操作でダイアログを終了すると、エンディング アニメーションは実行されません。また、最近追加されたSwipeToDismissBox
のオーバーロードに、状態のデフォルト値を追加しました。(I682a0) - i18n と a11y のサポートを強化するため、
ToggleChip
とSplitToggleChip
を変更し、toggleControl
スロットのデフォルト値がなくなるようにしました。また、SwitchIcon()->switchIcon()
、CheckboxIcon->checkboxIcon()
、RadioIcon()->radioIcon()
のメソッドが Icon ではなく ImageVector を返すようにToggleChipDefaults
を変更しました(@Composable を返さなくなったため、小文字で開始するように変更されています)。これにより、デベロッパーは適切なcontentDescription
セットで独自のIcon()
コンポーザブルを作成できます。(I5bb5b) SwipeDismissableNavHostState
パラメータをSwipeDismissableNavHost
に追加しました。これにより、ナビゲーション デスティネーションとして使用される画面で、エッジスワイプを使用できます。これは、SwipeToDismissBoxState
をホイスティングして、エッジスワイプを必要とする画面でSwipeDismissableNavHostState
とModifier.edgeSwipeToDismiss
の両方を初期化するために使用できるようになったためです。(I819f5、b/228336555)
バグの修正
- 必要に応じて曲線レイアウトを更新するようにします。(Ie8bfa、b/229079150)
- https://issuetracker.google.com/issues/226648931 のバグの修正(Ia0a0a、b/226648931)
- 不要な試験運用版アノテーションを削除しました(I88d7e)
バージョン 1.0.0-alpha20
2022 年 4 月 6 日
androidx.wear.compose:compose-foundation:1.0.0-alpha20
、androidx.wear.compose:compose-material:1.0.0-alpha20
、androidx.wear.compose:compose-navigation:1.0.0-alpha20
がリリースされました。バージョン 1.0.0-alpha20 に含まれる commit については、こちらをご覧ください。
新機能
SwipeToDismiss
にedgeSwipeToDismiss
修飾子を追加します。これにより、ビューポートの左端でのみswipeToDismiss
を有効にできるようになります。マップの 2D スクロールや、ページ間の水平方向のスワイプなど、画面の中央で水平方向のページングを処理する必要がある場合に使用します。(I3fcec、b/200699800)
API の変更
CurvedModifiers
の基本実装。これにより、曲線コンテンツをカスタマイズする方法の導入が可能になります(ただし、CurvedModifiers
はまだ提供されておらず、後でカスタム修飾子を作成する機能が利用できるようになります)(I9b8df)EdgeSwipe
修飾子のドキュメントとデフォルト値が更新され、わかりやすくなりました。(I6d00d)PageIndicator
スロットを Scaffold に追加します。PageIndicator
を Scaffold に直接追加することで、円形のデバイスで正しく表示されるようにします。(Ia6042)InlineSlider
および Stepper パラメータからデフォルトのアイコンを削除します。これにより、デベロッパーはローカライズとユーザー補助の要件にさらに注意を払うことができるようになります。デフォルトのアイコンの使用方法はデモとサンプルで示されています。(I7e6fd)- TimeText の先頭と末尾のパラメータ名を Start と End に置き換えました。(Iaac32)
onDismissed
パラメータでSwipeToDismissBox
オーバーロードが追加され、スワイプ操作の完了時にナビゲーション イベントをトリガーするという一般的な使用方法がサポートされるようになりました。(I50353、b/226565726)TimeText
の使用方法からExperimentalWearMaterialApi
アノテーションを削除しました(Ide520)ScalingLazyList/Column
のスコープと情報インターフェースは、外部のデベロッパーによる実装を想定していないため、シール済みとしてマークされています。これにより、バイナリに破壊的変更を加えることなく、今後新しいメンバーを追加できるようになります。(I7d99f)- 選択ツールに新しい
flingBehaviour
プロパティとPickerDefaults.flingBehaviour()
メソッドが追加され、RSB サポートの追加などのフリング動作の設定が可能になりました。PickerState
にScrollableState
インターフェースが実装されました。(Ib89c7)
バグの修正
- Wear Compose ライブラリの Android ランタイム(ART)のベースライン プロファイル ルールを更新します。ART では、デバイス上のプロファイル ルールを活用して、アプリの特定の部分を事前にコンパイルし、アプリケーションのパフォーマンスを改善できます。なお、これはデバッグ可能なアプリには影響しません。(Iaa8ef)
- ドキュメントを改善しました(I2c051)
バージョン 1.0.0-alpha19
2022 年 3 月 23 日
androidx.wear.compose:compose-foundation:1.0.0-alpha19
、androidx.wear.compose:compose-material:1.0.0-alpha19
、androidx.wear.compose:compose-navigation:1.0.0-alpha19
がリリースされました。バージョン 1.0.0-alpha19 に含まれる commit については、こちらをご覧ください。
API の変更
CurvedRow
の名前をCurvedLayout
に変更し、DSL 付きのスコープになるよう再構築しました。この DSL を使用すると、より複雑な曲線レイアウトを一連のネストされたcurvedRow
とcurvedColumn
(Row と Column と同等の曲線レイアウト)を使って指定できます。これらのレイアウト要素内では、curvedComposable
(@Composable を追加)、basicCurvedText
(基盤の曲線テキスト)、curvedText
(Wear マテリアル対応の曲線テキスト)の 3 つの要素を使用できます。(Ib776a)PositionIndicator
の側を構成可能に変更しました。基本の PositionIndicator の位置を End(レイアウト方向対応)、OppositeRsb(画面の回転を考慮し、自身を物理的な RSB の反対に位置付け)、または絶対値である Left と Right に設定できるようになりました。(I2f1f3)SwipeToDismissBox
の場合に、SwipeDismissTarget
.Original の名前をSwipeToDismissValue.Default
に変更し、SwipeDismissTarget.Dismissal
の名前をSwipeToDismissValue.Dismissed
に変更しました。また、SwipeToDismissBoxDefaults.BackgroundKey
とSwipeToDismissBoxDefaults.ContentKey
をそれぞれSwipeToDismissKeys.Background
、SwipeToDismissKeys.Content
に移動しました。(I47a36)- 複数の Picker があり、一度に 1 つの Picker のみが編集可能である画面の場合に、Picker に読み取り専用モードを追加しました。Picker が読み取り専用の場合は、現在選択されているオプションと、ラベル(指定されていた場合)が表示されます。(I879de)
ExperimentalWearMaterialApi
のスコープをModifier.swipeable
とSwipeableState
に制限するようSwipeToDismissBoxState
をリファクタリングし、内部で使用できるようにしました。SwipeToDismissBoxState
に、一般的なユースケースをサポートするようcurrentValue
、targetValue
、isAnimationRunning
、snapTo
のメンバーを追加しました。他のプロパティを利用できるようにする必要がある場合は、お知らせください。また、スワイプ オフセットがアンカーの丸め誤差内にある場合の、SwipeableState
の動作を修正しました。(I58302)
バグの修正
ScalingLazyColumn
のコンテンツをスクロールできるかどうかを検出するためのコードを簡素化し、修正しました(スクロールバーを表示するかどうかの判断に使用されます)。(I7bce0)- 複数の状態で使用して状態を切り替える場合の位置インジケーターのバグを修正しました。(I320b5)
- 最新の UX ガイダンスと一致するよう Wear OS 向け Compose のデフォルトのテーマ タイポグラフィ / フォントを更新しました。特に display1(40.sp)と display2(34.s)が以前の値より小さくなり、行の高さと行間隔に対しさまざまなその他のマイナー アップデートを加えました。(Ie3077)
- 閉じるようスワイプしたときのみモーションが発生し、逆方向ではまったく発生しないよう、
SwipeToDismissBox
に抵抗を追加しました。(Ifdfb9) - Wear マテリアル デザインの UX ガイドラインと一致するよう、
CircularProgressIndicator
関数のデフォルトのパラメータ値の一部を変更しました。Spinner / Indeterminant バージョンでは、size(40 -> 24.dp)、indicatorColor(primary -> onBackground)、trackColor transparency(30% -> 10%)、stroke width(4 -> 3dp)を更新しました。Progress / Determinate バージョンでは、trackColor transparency(30% -> 10%)を更新しました。(I659cc) - 最新の Wear マテリアル デザインの UX 仕様と一致するよう
ScalingLazyColumn
のデフォルトのスケーリング パラメータを更新しました。表示上は、この更新により、リストの中心に近いリスト項目からスケーリングが開始されますが、リストの端では以前よりもスケーリングが少なくなります。(Ica8f3) - アニメーションの終了を改善するために
ScalingLazyColumnDefaults.snapFlingBehavior
を調整しました。(If3260)
バージョン 1.0.0-alpha18
2022 年 3 月 9 日
androidx.wear.compose:compose-foundation:1.0.0-alpha18
、androidx.wear.compose:compose-material:1.0.0-alpha18
、androidx.wear.compose:compose-navigation:1.0.0-alpha18
がリリースされました。バージョン 1.0.0-alpha18 に含まれる commit については、こちらをご覧ください。
API の変更
- PositionIndicator にいくつかの改善を加えました。ShowResult を PositionIndicatorVisibility に名称変更しました。不要な再計算を避けるため、パフォーマンスを改善しました(Iaed9d)
SplitToggleChip
の推奨色を変更しました。SplitToggleChip のチェックをオンまたはオフにしたときの背景色を無地一色とし、コンポーネントがチェックされているかどうかを ToggleControl の色で簡単に判別できるようにしました。新しいカラーパターンをサポートするため、新たにToggleDefaults.splitToggleChipColors()
を追加しました。また、splitBackgroundOverlayColor を削除し、toggleChipColors()
メソッドを簡素化しました(I7e66e)ScalingLazyListItemInfo
に unadjustedSize を追加しました。これは、浮動小数点数の精度の点で、スケーリングしたサイズとスケーリング ファクタで元のアイテムサイズを計算するのが安全ではないためです。(I54657、b/221079441)HorizontalPageIndicator
を追加しました。これは、ページの総数と選択されているページを表します。デバイスの形状に応じて直線または曲線にできます。また、インジケーターの形状をカスタマイズして、各インジケーターの視覚的な表示方法を定義できます。(Iac898)PickerState
を更新し、numberOfOptions を更新できるようにしました。これにより、選択した月によって月の日数が変わるDatePicker
などのユースケースに対応できます。これに伴い、PickerState のコンストラクタ パラメータが initialNumberOfOptions に変更されました。(Iad066)PositionIndicator
がスクロールバーである場合に、スクロールできないときは非表示になるようにしました。(Id0a7f)- Scaffold との整合性を保つため、全画面の Dialog コンポーネントに
PositionIndicator
とVignette
が表示されるようにしました。また、Column
に代わってScalingLazyColumn
を使用することになったため、Dialog コンテンツはScalingLazyListScope
に含めることとなりました(通常、アイテム { /* content */ } で囲む必要があります)。これに伴い、Dialog で verticalArrangement パラメータがサポートされました。(Idea13) - マテリアル デザインに合わせて
ToggleChip
とSplitToggleChip
の toggleIcon プロパティの名前を toggleControl に変更し、API をナビゲーションしやすくしました。(If5921、b/220129803) - Wear のマテリアル テーマ Typology.Caption3 に、新しいエントリ caption3 を追加しました。caption3 は、法的文書のような非常に長い文章に使用する小さなフォントです。(I74b13、b/220128356)
バグの修正
- 表示したときに、スナップのアニメーションが停止します。(Idb69d)
- PositionIndicator の変更をアニメーション化しました。(I94cb9)
- UI / UX のフィードバックに基づいて
ScalingLazyColumn
の autoCentering を変更し、インデックスがScalingLazyListState.initialCenterItemIndex
以上の複数のアイテムを、ビューポートの中央に完全にスクロールするために必要なスペースのみが提供されるようにしました。これにより、最初に中央に配置したアイテムの周囲に 1 つまたは 2 つのアイテムを配置しても、中央にスクロールされなくなりました。これに伴い、ScalingLazyColumn
を autoCentering しても、initialCenterItemIndex/initialCenterItemScrollOffset
より上にはスクロールできなくなりました。(I22ee2) - 日付選択ツールのデモを追加し、選択ツールが表示されるまで initialInitialOptionOption が適用されていなかった
PickerState
のバグを修正しました。(Id0d7e) - 円形の画面に幅の広い
ScalingLazyColumn
アイテムを表示する際のクリッピングを減らすため、水平方向のデフォルトのコンテンツ パディングを 8 dp から 10 dp に増やしました。(I0d609) - スクロール時に
PositionIndicator
が表示されることを確認しました。(Ied9a2)
バージョン 1.0.0-alpha17
2022 年 2 月 23 日
androidx.wear.compose:compose-foundation:1.0.0-alpha17
、androidx.wear.compose:compose-material:1.0.0-alpha17
、androidx.wear.compose:compose-navigation:1.0.0-alpha17
がリリースされました。バージョン 1.0.0-alpha17 に含まれる commit については、こちらをご覧ください。
新機能
ScalingLazyColumn
で使用できるスナップのサポートを追加しました。flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state)
を設定すると、スナップのサポートが有効になります。(I068d3、b/217377069)- 時刻の形式(24 時間形式または 12 時間形式)を選択する際に使用される選択ツールのデモを追加しました。(Ie5552)
API の変更
- 正方形のデバイスでの
TimeText
のカスタム フォントとスタイルに関する問題を修正しました(Iea76e) ScalingLazyListLayoutInfo
に、LazyListLayoutInfo
の各プロパティと一致するreverseLayout
、viewportSize
、orientation プロパティが追加されました(I4f258、b/217917020)ScalingLazyColumn
に、LazyList
のプロパティと一致するuserScrollEnabled
プロパティが追加されました(I164d0、b/217912513)- 選択ツールはデフォルトで上下にグラデーションが表示されるようになりました(Iab92a)
バグの修正
- 親のスペースをすべて埋め尽くすことのないように
ScalingLazyColumn
を変更しました。代わりに、コンテンツのサイズからサイズを取得します。これはLazyColumn
の動作と同じです。以前の動作に戻す場合は、Modifier.fillMaxWidth()/width()/widthIn()
をScalingLazyColumn
に渡してください(I51bf8) - ナビゲーションのバックスタックが空の場合にトリガーされる
SwipeDismissableNavHost.kt
の例外メッセージを改善しました(I1b1dc)
バージョン 1.0.0-alpha16
2022 年 2 月 9 日
androidx.wear.compose:compose-foundation:1.0.0-alpha16
、androidx.wear.compose:compose-material:1.0.0-alpha16
、androidx.wear.compose:compose-navigation:1.0.0-alpha16
がリリースされました。バージョン 1.0.0-alpha16 に含まれる commit については、こちらをご覧ください。
新機能
CircularProgressIndicator
を追加しました。進行状況インジケーターに、プロセスの長さや不特定の待ち時間が表示されます。全画面で使用する場合、TimeText または他のコンポーネントのギャップ(カットアウト)をサポートします。(Iab8da)
API の変更
- 選択ツールに
flingBehavior
パラメータが追加されました。デフォルト値では、スクロールまたはフリングを行ったとき、最も近いオプションにスナップします。(I09000) - InlineSlider と Stepper 用の整数 API を追加しました。(I1b5d6)
バグの修正
ScalingLazyListState
のデフォルトの initialCenterItemIndex を 0 から 1 に変更しました。つまり、状態の構築でScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =
)
にオーバーライドされない限り、初期化時に 2 番目のリスト項目(index == 1)がビューポートの中央に配置され、1 番目のリスト項目(index == 0)がその前に配置されます。これにより、ほとんどのビューポートがリスト項目で埋まるため、すぐに使えるデフォルトの視覚効果が向上します。(I0c623、b/217344252)- 一部のサイズを縮小している場合でも多くのリスト項目が表示されるように提供されている
ScalingLazyColumn
のデフォルトのextraPadding
を、10% から 5% に減らしました。これにより、ビューポートに表示されない可能性のある余分なリスト項目が作成されなくなります。標準以外の scaleParams が使用されている場合(より極端なスケーリングなど)、デベロッパーはviewportVerticalOffsetResolver
を使用して余分なパディングを調整できます。(I76be4) - 正方形のデバイスで TimeText が複数行にわたる問題を修正しました。(Ibd3fb)
- 親のスペースをすべて埋め尽くすことのないように
ScalingLazyColumn
を変更しました。代わりに、コンテンツのサイズからサイズを取得します。これはLazyColumn
の動作と同じです。以前の動作に戻す場合は、Modifier.fillMaxSize()
をScalingLazyColumn
に渡してください(注: この変更は不完全であり、次のアルファ版リリースにおける後続の変更で対処される予定です)。(I3cbfa)
バージョン 1.0.0-alpha15
2022 年 1 月 26 日
androidx.wear.compose:compose-foundation:1.0.0-alpha15
、androidx.wear.compose:compose-material:1.0.0-alpha15
、androidx.wear.compose:compose-navigation:1.0.0-alpha15
がリリースされました。バージョン 1.0.0-alpha15 に含まれる commit については、こちらをご覧ください。
API の変更
ScalingLazyColumn
に新しいプロパティautoCentering
を追加しました。このプロパティが true(デフォルト)の場合、すべての項目(最初と最後の項目を含む)をスクロールして、リストのビューポートの中央に表示できます。なお、自動中央揃えを使用する場合は、垂直方向のコンテンツ パディングを 0.dp に設定することをおすすめします。autoCentering と垂直方向のコンテンツ パディングの両方が指定された場合、両方によって最初のリスト項目の前と最後のリスト項目の後で追加のスペースが利用可能になり、スクロール可能なスペースが増えます。(I2a282、b/214922490)- 他のコンテンツを覆う全画面ダイアログを任意のコンポーザブルがトリガーできるようにする
Dialog
コンポーネントを追加しました。このダイアログは、表示されると「スワイプして閉じる」機能をサポートし、スワイプ操作中にその親のコンテンツをバックグラウンドで表示します。ダイアログのコンテンツはAlert
またはConfirmation
(以前のコンポーネントAlertDialog
およびConfirmationDialog
から名前が変更されました)であると想定されます。Alert
、Confirmation
、Dialog
はすべてandroidx.wear.compose.material.dialog
パッケージ内にあります。Alert と Confirmation はナビゲーション デスティネーションとして使用できます。また、必要に応じて Alert および Confirmation パラメータに ColumnScope を追加しました。(Ia9014) - Compose for Wear OS のマテリアル テーマ カラーから
onSurfaceVariant2
を削除し、ライブラリでの使用をonSurfaceVariant
に置き換えました。(Icd592) PickerState
でオプションをプログラムで選択するメソッドを追加し、最初に選択したオプションをPickerState
の作成時にも指定できるようにしました。(I92bdf)ScalingLazyColumn
のフリング動作をカスタマイズするためのサポートを追加しました。(I1ad2e、b/208842968)Wear.Compose.Navigation
ライブラリにNavController.currentBackStackEntryAsState()
を追加しました。(If9028、b/212739653)- 回転するサイドボタンを備えた Wear デバイス用に
Modifier.onRotaryScrollEvent()
とModifier.onPreRotaryScrollEvent()
を追加しました。(I18bf5、b/210748686)
バージョン 1.0.0-alpha14
2022 年 1 月 12 日
androidx.wear.compose:compose-foundation:1.0.0-alpha14
、androidx.wear.compose:compose-material:1.0.0-alpha14
、androidx.wear.compose:compose-navigation:1.0.0-alpha14
がリリースされました。バージョン 1.0.0-alpha14 に含まれる commit については、こちらをご覧ください。
新機能
デベロッパーが特定のリスト項目へのスクロールを制御し、またリスト項目やオフセットの初期設定を行える、複数のメソッドを
ScalingLazyListState
に追加しました。この変更の一環として、ScalingLazyList が、ビューポートの開始点ではなく中心方向を向くように変更されています。
中心(
ScalingLazyListAnchorType.ItemCenter
)またはEdge
(ScalingLazyListAnchorType.ItemStart
)をビューポートの中心線に揃えるかどうかを制御する、新しいプロパティanchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter
がScalingLazyList
に追加されました。その結果
ScalingLazyListItemInfo.offset
とScalingLazyListItemInfo.adjustedOffset
が変更され、リスト項目の位置とリストのanchorType
の両方に関する項目のオフセットが反映されるようになりました。たとえば、ScalingLazyColumn
のanchorType
がItemCenter
で、リスト項目の中心がビューポートの中心線にある場合、オフセットは0
になります。新しいメソッドは
scrollTo
、animatedScrollTo
、centerItemIndex
、centerItemOffset
です。 (I61b61)[戻る] ボタンを押すとナビゲーション階層の前のレベルに移動できるように、[戻る] ボタンハンドラを
SwipeDismissableNavHost
に追加しました。(I5b086、b/210205624)
バージョン 1.0.0-alpha13
2021 年 12 月 15 日
androidx.wear.compose:compose-foundation:1.0.0-alpha13
、androidx.wear.compose:compose-material:1.0.0-alpha13
、androidx.wear.compose:compose-navigation:1.0.0-alpha13
がリリースされました。バージョン 1.0.0-alpha13 に含まれる commit については、こちらをご覧ください。
API の変更
RangeIcons
を内部化しました(InlineSlider
とStepper
によって内部で参照されます)。(I927ec)
バグの修正
SwipeDismissableNavHost
がCREATED
ライフサイクル状態になる前に Compose 階層にデスティネーションを追加するとIllegalStateException
が発生する問題を修正しました。この修正は、navigation-compose
の依存関係を2.4.0-beta02
以降にアップデートするための前提条件でした。(I40a2b、b/207328687)Wear Compose ライブラリ内のドローアブル リソースを取得するための Drawables 列挙型クラスを追加し、リフレクションが不要になりました。これにより、
minifyEnabled=true
またはshrinkResources=true
のときにライブラリ ドローアブルが削除されるバグを修正しました。(Ib2a98)Wear Compose の
Stepper
のテストを追加しました。(I2d03a)Wear Compose Navigation の
SwipeDismissableNavHost
のサンプルを追加しました。(I85f06)
バージョン 1.0.0-alpha12
2021 年 12 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha12
、androidx.wear.compose:compose-material:1.0.0-alpha12
、androidx.wear.compose:compose-navigation:1.0.0-alpha12
がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。
新機能
Stepper コンポーネントが追加され、ユーザーが値の範囲から選択できるようになりました。Stepper はフルスクリーン コントロールです。上に増加ボタン、下に減少ボタンがあり、中央にスロット(チップまたはテキストのいずれかが入ることを想定)があります。ボタンアイコンは、必要に応じてカスタマイズできます。(I625fe)
ダイアログを表示するための 2 つの新しいコンポーザブルが追加されました。 AlertDialog はユーザーからの応答を待機し、タイトル、アイコン、メッセージとともに a)シンプルな Positive と Negative の選択用の 2 つのボタン、または b)より柔軟な選択に対応するための縦に積み重ねられたチップまたは切り替えチップを表示します。 ConfirmationDialog はタイムアウトとともに確認応答を表示します。このシンプルなダイアログには、タイトル用と(アニメーション)アイコン用のスロットがあります。(Ic2cf8)
API の変更
- ダイアログの候補時間の値に単位(ミリ秒)を追加しました。(I09b48)
バージョン 1.0.0-alpha11
2021 年 11 月 17 日
androidx.wear.compose:compose-foundation:1.0.0-alpha11
、androidx.wear.compose:compose-material:1.0.0-alpha11
、androidx.wear.compose:compose-navigation:1.0.0-alpha11
がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
新機能
- スクロール リストからユーザーがアイテムを選択できる選択ツール コンポーネントを追加しました。デフォルトで、選択可能なアイテムのリストは両方向に「無限」に繰り返され、横から見ると回転する円柱のような印象を与えます。今後のリリースで、スワイプやフリングの後の値にスナップする機能と、現在の値に設定 / スクロールする関数を PickerState に追加する機能という 2 つが追加される予定です。(I6461b)
API の変更
- 親コンテナのサイズに基づいてリストアイテムのサイズを設定できるように、ScalingLazyItemScope と新しい修飾子 fillParentMaxSize / fillParentMaxWidth / fillParentMaxHeight を追加しました。アイテムは、親のサイズの全部または一部を埋めるように設定できます。これにより、LazyRow/Column ですでに利用可能な機能が公開されます。(I4612f)
- アイテムがキーを持つことができるように、ScalingLazyColumn のサポートを追加しました。また、配列やリストからアイテムを追加するための便利なメソッドを追加しました。(Ic1f89)
バグの修正
- TimeText のその他の例(I8cb64)
バージョン 1.0.0-alpha10
2021 年 11 月 3 日
androidx.wear.compose:compose-foundation:1.0.0-alpha10
、androidx.wear.compose:compose-material:1.0.0-alpha10
、androidx.wear.compose:compose-navigation:1.0.0-alpha10
がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
wear compose の InlineSlider を追加しました。InlineSlider を使用すると、ユーザーは値の範囲から選択できます。選択範囲は、範囲の最小値と最大値の間にバーとして表示され、ユーザーはそこから値を 1 つ選択できます。(If0148)
WearOS Codelab の新しい Compose をご確認ください。
API の変更
- Macrobenchmark の
minSdkVersion
が23
になりました。(If2655)
バグの修正
- SideEffect の SwipeDismissableNavHost での遷移処理を更新しました。(I04994、b/202863359)
- SwipeDismissableNavHost での遷移処理を更新しました。(I1cbe0、b/202863359)
バージョン 1.0.0-alpha09
2021 年 10 月 27 日
androidx.wear.compose:compose-foundation:1.0.0-alpha09
、androidx.wear.compose:compose-material:1.0.0-alpha09
、androidx.wear.compose:compose-navigation:1.0.0-alpha09
がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
新機能
- Wear OS で Compose のデベロッパー プレビューをリリースしました。詳しくは、メイン コンポーザブルと、それらの使用を開始するための参考資料へのリンクを確認できるブログ投稿をご覧ください。
API の変更
- Wear のマテリアル デザイン カラーテーマですべての色をカスタマイズできるデベロッパー向けのサポートを追加しました。(I4759b、b/199754668)
バグの修正
- 状態を永続化する SwipeToDismissBox サンプルを追加しました。(Ibaffe)
- CurvedText、TimeText、SwipeToDismissBox の KDocs から、developer.android.com ガイドへのリンクを追加しました。(I399d4)
- 現在のデスティネーションがない(NavGraph が wear.compose.navigation.composable ユーティリティ関数でビルドされていないことを示す)場合、SwipeDismissableNavHost がスローされるようになりました。(I91403)
- TimeText でのタイムソースの使用方法に関するドキュメントと例を追加しました。(I4f6f0)
バージョン 1.0.0-alpha08
2021 年 10 月 13 日
androidx.wear.compose:compose-foundation:1.0.0-alpha08
、androidx.wear.compose:compose-material:1.0.0-alpha08
、androidx.wear.compose:compose-navigation:1.0.0-alpha08
がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
- AppCard と TitleCard の
body
プロパティの名前をcontent
に変更し、プロパティ リストの末尾に移動したことで、後置ラムダとして提供できるようなりました。また、新しいスロット名との整合性を保つため、bodyColor
の名前をcontentColor
に変更しました。(I57e78)
バグの修正
- ボタン、カード、チップ、テーマ、位置インジケーター、遅延列コンポーネントのスケーリングについて、KDocs の developer.android.com ガイドへのリンクを追加しました。(I22428)
- WearOS SwipeToDismissBox がスワイプを処理しないことがある問題を修正しました。(I9387e)
- Button、CompactButton、Chip、CompactChip、AppCard、TitleCard、ToggleButton、ToggleChip、SplitToggleChip のサンプルを追加しました(Iddc15)
- Card、Chip、ToggleChip、TimeText、ScalingLazyColumn の Microbenchmark パフォーマンス テストを追加しました。(If2fe9)
バージョン 1.0.0-alpha07
2021 年 9 月 29 日
androidx.wear.compose:compose-foundation:1.0.0-alpha07
、androidx.wear.compose:compose-material:1.0.0-alpha07
、androidx.wear.compose:compose-navigation:1.0.0-alpha07
がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
- マテリアルに CurvedText コンポーネントを追加しました。これにより、デベロッパーは円の曲率に沿って(通常は円形の画面の端)、曲線テキストを簡単に記述できます。(I19593)
API の変更
- TimeText のテストを追加しました(Idfead)
- ArcPaddingValues をインターフェースに変換します。(Iecd4c)
- SwipeToDismissBox にアニメーションを追加しました(I9ad1b)
- SwipeToDismissBox API に hasBackground パラメータを追加し、表示するバックグラウンド コンテンツがない場合にスワイプ操作を無効にできるようにしました。(I313d8)
rememberNavController()
がオプションのNavigator
インスタンスのセットを受け取るようになりました。これらのインスタンスは、返されるNavController
に追加され、Accompanist Navigation Material の Navigator など、オプションの Navigator のサポートを強化します。(I4619e)- navigation-common の NamedNavArgument を参照し、wear.compose.navigation からコピーを削除しました。(I43af6)
バグの修正
- 小型デバイスでの CurvedRow のテストの不安定性を修正しました。(If7941)
- コンテンツ更新時の CurvedRow の予想されるちらつきを修正し、曲線行が再測定されるようにしました。(Ie4e06)
- ChipDefaults.gradientBackgroundChipColors() を UX 仕様の変更に合わせて更新しました。グラデーションは、MaterialTheme.colors.surface(アルファ 75%)の背景に、MaterialTheme.colors.primary(アルファ 32.5%)で始まり、MaterialTheme.colors.surface(アルファ 0%)で終了するようになりました。(Id1548)
- 最新の Wear マテリアル デザインの UX 仕様ガイダンスに合わせて、選択された状態の ToggleChip の色を更新しました。選択されると、ToggleChip のグラデーションの背景は、MaterialTheme.color.surface(アルファ 75%)の背景に、左上の MaterialTheme.color.surface(アルファ 0%)で始まり、右下の MaterialTheme.color.primary(アルファ 32%)で終了するようになりました。これにより ToggleChip のオンとオフの違いは、よりわずかになっています。(Idd40b)
バージョン 1.0.0-alpha06
2021 年 9 月 15 日
androidx.wear.compose:compose-foundation:1.0.0-alpha06
、androidx.wear.compose:compose-material:1.0.0-alpha06
、androidx.wear.compose:compose-navigation:1.0.0-alpha06
がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- PositionIndicator(スクロールやボリュームなど)の位置、を処理するための構造を提供するトップレベルのアプリ コンポーザブル Scaffold、時刻とアプリケーションのステータスを表示する画面上部の領域を追加し、また画面の上下端をぼかすための周辺減光をサポートしました。Scaffold の主なエリアは、アプリケーション コンテンツを配置する場所です。(I5e0bf)
- Wear Compose 用の TimeText 実装を追加しました(I5654c)
Wear Compose Navigation ライブラリ
Wear Compose と Androidx Navigation ライブラリを統合した Wear Compose Navigation ライブラリの最初のリリースを追加しました。これにより、アプリ内の宛先として @Composable 関数間を簡単に移動できます。
この初回リリースで提供されるものは以下のとおりです。
- ナビゲーション グラフをホストし、スワイプ操作で戻る方向の移動を行う
SwipeDismissableNavHost
コンポーザブル - ナビゲーション グラフの作成を支援する
NavGraphBuilder.composable
拡張機能 - 状態をホイスティングできるようにする
rememberSwipeDismissableNavController()
- ナビゲーション グラフをホストし、スワイプ操作で戻る方向の移動を行う
画面を 2 つ作成し、その画面間を移動する場合の使用例:
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "start" ) { composable("start") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Button(onClick = { navController.navigate("next") }) { Text("Go") } } } composable("next") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Text("Swipe to go back") } } }
Wear Compose Navigation は個別のライブラリとしてパッケージ化されているため、独自の手巻きナビゲーションを実装するシンプルな WearCompose アプリは、Androidx Navigation ライブラリに依存する必要がありません。
API の変更
- 背景とコンテンツのキー ID を設定することで
rememberSaveable
をサポートするようにSwipeDismissableNavHost
を更新しました。(I746fd) - LazyListState を処理できる PositionIndicator アダプタを追加しました。(I21b88)
- rememberSaveable をサポートするように SwipeToDismissBox を更新しました。(Ie728b)
- ScalingLazyColumn に reverseLayout のサポートを追加しました。これにより、スクロールとレイアウトの方向を逆にすることができます。(I9e2fc)
performGesture
とGestureScope
が非推奨になりました。それぞれperformTouchInput
とTouchInjectionScope
に置き換えられました。(Ia5f3f、b/190493367)- VignetteValue の名前を VignettePosition に変更し、VignetteValue.Both の名前を VignettePosition.TopAndBottom に変更しました。(I57ad7)
- 今後 ScalingLazyRow implementation を追加することになった場合に備えて、ScalingLazyColumnState の名前を ScalingLazyListState に、ScalingLazyColumnItemInfo を ScalingLazyListItemInfo に、ScalingLazyColumnLayoutInfo を ScalingLazyListLayoutInfo に、ScalingLazyColumnScope を ScalingLazyListScope に変更しました。(I22734)
バグの修正
- アイコンもラベルも指定されていない場合の影響について説明するように、CompactChip のドキュメントを更新しました。(I4ba88)
- Wear カード コンポーネントに以下の調整を行いました。(I6b3d0)
- タイトルと本文の間の TitleCard の間隔を 8.dp から 2.dp に減らしました。
- TitleCard ヘッダーのフォントを body から title3 に変更しました。
- カードの背景のグラデーションを、背景が暗くなるように変更しました。
バージョン 1.0.0-alpha05
2021 年 9 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha05
と androidx.wear.compose:compose-material:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
API の変更
- ArcPaddingValues が @Stable としてマークされました(I57deb)
- ScalingLazyColumnState が ScrollableState インターフェースを実装したことで、デベロッパーはプログラムからアクセスしてコンポーネントをスクロールできるようになりました。(I47dbc)
バグの修正
- UX 仕様の更新に合わせて、Icon と Text in Chip と ToggleChip の間隔を縮小しました。(I83802)
バージョン 1.0.0-alpha04
2021 年 8 月 18 日
androidx.wear.compose:compose-foundation:1.0.0-alpha04
と androidx.wear.compose:compose-material:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- SwipeToDismissBox とスワイプ可能修飾子(左から右へスワイプして閉じる操作のサポートに使用可能)を追加しました。これは、Navigation コンポーネントから独立していますが、ある画面を終了して別の画面に移動するために使用することが想定されています。「スワイプして閉じる」のデモを行う統合テストを追加しました。(I7bbaa)
- スケーリングが適用された後に ScalingLazyColumn でのアイテムの実際の位置とサイズをデベロッパーが把握できるように、ScalingLazyColumnItemInfo インターフェースと ScalingLazyColumnLayoutInfo インターフェースを ScalingLazyColumnState クラスに追加しました。また、「上位」コンテンツのパディングが ScalingLazyColumn に適用された場合のスケーリングの計算方法に関するバグも修正しました。(I27c07)
API の変更
- 曲線テキストのスタイル設定の Option を指定するための CurvedTextStyle クラスを追加しました。TextStyle とよく似ていますが、色、fontSize、背景のみをサポートするようになりました。今後、さらに多くのスタイル設定オプションが追加される予定です。(I96ac3)
- スケーリングが適用された後に ScalingLazyColumn でのアイテムの実際の位置とサイズをデベロッパーが把握できるように、ScalingLazyColumnItemInfo インターフェースと ScalingLazyColumnLayoutInfo インターフェースを ScalingLazyColumnState クラスに追加しました。また、「上位」コンテンツのパディングが ScalingLazyColumn に適用された場合のスケーリングの計算方法に関するバグも修正しました。(I27c07)
SwipeToDismissBox
API の一部であるSwipeDismissTarget
列挙型に@ExperimentalWearMaterialApi
を追加しました。(I48b5e)
バグの修正
- SwipeToDismissBox のテスト資料を追加しました(I9febc)
バージョン 1.0.0-alpha03
2021 年 8 月 4 日
androidx.wear.compose:compose-foundation:1.0.0-alpha03
と androidx.wear.compose:compose-material:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
- CurvedText コンポーネントを追加しました。これにより、デベロッパーは円の湾曲(通常は円形画面の端にある)に沿ってテキストを簡単に入力できます(Id1267)
- 背景画像にスクリムが描画されていることがはっきりとわかるよう、
CardDefaults.imageBackgroundPainter()
の名前をCardDefaults.imageWithScrimBackgroundPainter()
に変更しました。(I53206) - Wear マテリアルのリスト コンポーネントを提供する ScalingLazyColumn コンポーネントを追加しました。これにより、コンポーネントの端に向かってスケーリングするとリスト コンテンツがサイズ縮小され透明になる魚眼ビューが提供されます。(I7070c)
バグの修正
- UX 仕様の更新に応じて、AppCard の appName コンテンツのデフォルト色が変更されました。appName のデフォルト色は
MaterialTheme.colors.onSurfaceVariant
になりました。また、タイトル スロットに欠落しているパラメータのドキュメントの説明を追加しました。(Ic4ad1)
バージョン 1.0.0-alpha02
2021 年 7 月 21 日
androidx.wear.compose:compose-foundation:1.0.0-alpha02
と androidx.wear.compose:compose-material:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- 円弧の中にコンポーザブルをレイアウトする新しいクラス CurvedRow を追加しました。(I29941)
- アプリ内で使用する新しいタイプのカード(TitleCard)を追加し、コンテンツを強調するために背景としてカードに追加できる画像の設定のサポートも追加しました。(I53b0f)
API の変更
- CurvedRow に放射状整列(行の垂直方向の整列と似た機能)のサポートを追加しました。(Id9de5)
- 円弧の中にコンポーザブルをレイアウトする新しいクラス CurvedRow を追加しました。(I29941)
- アプリ内で使用する新しいタイプのカード(TitleCard)を追加し、コンテンツを強調するために背景としてカードに追加できる画像の設定のサポートも追加しました。(I53b0f)
- デベロッパーが ToggleChip と SplitToggleChip を簡単に構成できるようにするため、ToggleChipDefaults に切り替えアイコン(チェックボックス、スイッチ、ラジオボタン)を追加しました。(I7b639)
- チップの開始および終了コンテンツ パディングが更新され、チップにアイコンが存在するかどうかにかかわらず、常に 14.dp になりました(以前はアイコンが存在する場合は 12.dp、アイコンが存在しない場合は 14.dp でした)。(I34c86)
バグの修正
- CurvedRow のテストを追加しました。(I93cdb)
- Wear Compose の依存関係を Compose 1.0.0-rc01 に関連付けました。(Ie6bc9)
- カードとチップにおける背景画像のペイントの処理を変更し、画像の比率を維持するために画像が引き伸ばされるのではなく切り抜かれるようにしました。(I29b41)
- Button と ToggleButton のデモと統合テストを追加しました。(5e27ed2)
- imageBackgroundChip のコンテンツの色をカバーするため、チップのテストを追加しました。(Ia9183)
バージョン 1.0.0-alpha01
2021 年 7 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha01
と androidx.wear.compose:compose-material:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
Wear Compose は、Wear OS ウェアラブル用にマテリアル デザインを拡張した Wear マテリアル デザインをサポートする、Compose ベースの Kotlin ライブラリです。この最初のアルファ版リリースには、次のものを備えた初期段階の機能実装が含まれています。
- マテリアル テーマ - このライブラリから使用されるコンポーネント全体の色、タイポグラフィ、図形を構成します。
- Chip、CompactChip - チップは楕円形をしており、アイコン、ラベル、セカンダリ ラベルのコンテンツを取得するためのバリエーションがあります。
- ToggleChip、SplitToggleChip - ラジオボタンやチェックボックスなど、2 つの状態を切り替えるアイコンのスロットを含む特別なタイプのチップです。また、SplitToggleChip には 2 つ(クリック可能と切り替え可能)のタップ可能な領域があります。
- Button、CompactButton - ボタンは円形をしており、アイコン用の単一のコンテンツ スロットか、最小限のテキスト(最大 3 文字)を備えています。
- ToggleButton - アクションのオン / オフを切り替えるボタンで、アイコン用の単一のスロットか、最小限のテキスト(最大 3 文字)を備えています。
- Card、AppCard - 角が丸い四角形をしており、アプリアイコン、時間、タイトル、本文などのコンテンツのスロットを提供します。
将来のリリースでは、ウィジェット セットが拡張され、Wear マテリアル デザイン選択ツール、スライダー、リスト、ページ インジケーター、ダイアログ、スクロール RSB インジケーター、トーストなどのサポートが追加される予定です。
さらに、その他のウェアラブル固有の機能(曲線レイアウトやテキストなど)のサポートと、デベロッパーがウェアラブル アプリ / オーバーレイを簡単に構築するための土台が提供されます。
Wear Compose マテリアルは、ウェアラブルをターゲットにしているとはいえ、Compose マテリアルと同じ原則に沿ってデザインされています。ウェアラブル デバイス用の開発では、Compose マテリアル ライブラリの代わりに、Wear Compose マテリアル ライブラリを使用してください。
この 2 つの「マテリアル」ライブラリは相互排他的であると見なす必要があり、同じアプリ内に混在させてはなりません。Compose マテリアル ライブラリを依存関係に含めてしまうのは、a)Wear Compose マテリアル ライブラリにコンポーネントが不足している場合、または b)Google がウェアラブル デバイスでの使用を推奨していないコンポーネントをアプリで使用している場合のどちらかです。a)に該当する場合は、必要なコンポーネントを Google にお知らせください。