wear protolayout
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 12 月 11 日 | 1.2.1 | - | - | 1.3.0-alpha05 |
依存関係の宣言
wear-protolayout への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.3
バージョン 1.3.0-alpha05
2024 年 12 月 11 日
androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
がリリースされました。バージョン 1.3.0-alpha05 に含まれる commit はこちらをご覧ください。
新機能
- バインディング可能なレイアウト文字列フィールドをサポートするために
LayoutString
を追加しました。(Ida650) ProtoLayout Material3
カード コンテナ コンポーネントを追加しました。(Ic985a)
バグの修正
- このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ引数を使用して、正しい使用を強制する必要があります。
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(Id1f9b、b/326456246)
バージョン 1.3.0-alpha04
2024 年 11 月 13 日
androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
がリリースされました。バージョン 1.3.0-alpha04 に含まれる commit はこちらをご覧ください。
新機能
- Material3 シェイプを更新し、Wear Compose と同様に、実際のコーナー値を保持するフィールドを持つクラスにしました。(Ied8cd)
- Wear Compose と同様に、
ColorScheme
コンセプトを含むようにマテリアル 3 の色を更新しました。(If645e) - よく使用される複数のマッチング条件をテスト ライブラリに追加します。(Ie5cec)
バージョン 1.3.0-alpha03
2024 年 10 月 30 日
androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
がリリースされました。バージョン 1.3.0-alpha03 には、これらの commit が含まれています。
新機能
- テスト ライブラリに
LayoutElementAssertionsProvider
、LayoutElementAssertion
、LayoutElementMatcher
を追加しました。(Id1110)
バージョン 1.3.0-alpha02
2024 年 10 月 16 日
androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit はこちらをご覧ください。
新機能
- マテリアル 3 ライブラリの初期バージョン。
text
、edgeButton
、buttonGroup
、primaryLayout
コンポーネントが含まれています。
セキュリティに関する修正
- この変更により、androidx は protobuf 4.28.2 に対してコンパイルされ、CVE-2024-7254 に対処します。
androidx.wear.protolayout:protolayout-proto
とandroidx.wear.protolayout:protolayout-external-protobuf
のバージョン 1.3.0-alpha01 の依存関係を 1.3.0-alpha02 にアップグレードして、脆弱性リスクに対処します。
外部からの協力
バージョン 1.3.0-alpha01
2024 年 10 月 2 日
androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
がリリースされました。バージョン 1.3.0-alpha01 には、これらの commit が含まれています。
バグの修正
- Roboto と Roboto Flex のフォント ファミリー名の可用性はデバイスによって異なることを明確にしました。(I193be)
- AndroidX タイル レンダラで Roboto Flex フォント ファミリーを有効にしました。(I08e94)
バージョン 1.2
バージョン 1.2.1
2024 年 10 月 16 日
androidx.wear.protolayout:protolayout-*:1.2.1
がリリースされました。バージョン 1.2.1 には、これらの commit が含まれています。
セキュリティに関する修正
- この変更により、androidx は protobuf 4.28.2 に対してコンパイルされ、CVE-2024-7254 に対処します。脆弱性リスクに対処するため、
androidx.wear.protolayout:protolayout-proto
とandroidx.wear.protolayout:protolayout-external-protobuf
のバージョン 1.2.0 の依存関係を 1.2.1 にアップグレードします。
バージョン 1.2.0
2024 年 8 月 7 日
androidx.wear.protolayout:protolayout-*:1.2.0
がリリースされました。バージョン 1.2.0 に含まれる commit はこちらをご覧ください。
1.1.0 以降の重要な変更
FontStyle
が更新され、可変軸のフォント サポートが追加され、今後の Flex フォントに対応するフォント選択 API が改善されました。- その他の修飾子のサポート:
- アニメーションの有無にかかわらず、移動、回転、スケーリングを提供する変換修飾子。
- 角の半径に異なる値(水平方向と垂直方向)を指定します。
- Clickable 修飾子を使用する要素のタップ可能領域を
48dp
×48dp
以上に拡張し、すべてのタップ対象のユーザー補助機能を改善しました。 setResponsiveContentInsetEnabled
を追加してPrimaryLayout
とEdgeContentLayout
を改善し、さまざまな画面サイズでこれらのレイアウトのレスポンシブ動作をより適切にサポートし、タイルの一貫性を改善しました。- Android 14 の非線形フォント スケーリング用に、マテリアル テキストのスケーリングと非スケーリングを改善しました。
- すべての円弧要素で RTL レイアウト方向のサポートを改善しました。
その他の変更
- バージョン 1.1.0 で導入された変更の詳細については、beta01 リリースノートをご覧ください。
バージョン 1.2.0-rc01
2024 年 7 月 24 日
androidx.wear.protolayout:protolayout-*:1.2.0-rc01
がリリースされました。バージョン 1.2.0-rc01 に含まれる commit はこちらをご覧ください。
バグの修正
- 標準のマテリアル チップを修正し、プライマリ ラベルまたはセカンダリ ラベルのいずれも渡されていない場合にのみ、アイコンとして使用できるようにしました。(Iceef9)
- マテリアル レイアウトのドキュメントが更新され、レイアウトをより簡単に理解できるように、関連ページのビジュアルが追加されました。(I0256a)
バージョン 1.2.0-beta01
2024 年 7 月 10 日
androidx.wear.protolayout:protolayout-*:1.2.0-beta01
がリリースされました。バージョン 1.2.0-beta01 には、これらの commit が含まれています。
新機能
Wear ProtoLayout 1.2.0-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear ProtoLayout 1.2 には、次の新機能と API が含まれています。
FontStyle
が更新され、次のフォントがサポートされるようになりました。FontSetting.weight
やFontSetting.width
など、さまざまなフォント バリエーション設定を設定する- すべての数字文字に同じ幅を設定する - 表記数字(
FontSetting.tnum
フォント機能の設定) - フォント選択 API を改善し、使用する優先フォント ファミリー名を指定して、今後の Flex フォントをサポートできるようにしました。
Corner
修飾子を拡張し、各CornerRadius
に水平方向と垂直方向の値を個別に指定して、非対称のコーナーを持つ要素を作成できるようにしました。LayoutElement
の移動、回転、スケーリングを提供する新しいTransformation
修飾子を追加しました。これらの変換は、動的値を使用してアニメーション化できます。- さまざまなレイアウトの向き(LTR や RTL など)をより適切にサポートするため、すべての円弧要素(
Arc
、ArcLine
、ArcText
)にClockwise
、CounterClockwise
、Normal
のオプションを持つsetArcDirection
を追加しました。 Clickable
修飾子を使用する要素のタップ可能領域を少なくとも48dp
x48dp
に拡張し、すべてのタップ ターゲットのユーザー補助を改善しました。setResponsiveContentInsetEnabled
を追加してPrimaryLayout
とEdgeContentLayout
を改善し、さまざまな画面サイズでこれらのレイアウトのレスポンシブ動作をより適切にサポートし、タイルの一貫性を改善しました。これらの API の使用と簡単な修正を提案する lint 警告を追加しました。- Android 14 の非線形フォント スケーリング用に、マテリアル
Text
のスケーリングと非スケーリングを改善しました。
API の変更
- デフォルトのフォント ファミリー名(
DEFAULT_SYSTEM_FONT
)は、preferredFontFamilies
API を使用しないことが暗黙的に示されているため削除されました。(I39dab) FontSetting.width
に渡されるパラメータは正の値にする必要があります。(I1266f)
バージョン 1.2.0-alpha05
2024 年 6 月 26 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit はこちらをご覧ください。
新機能
hasText
メソッドをMaterial.CompactChip
に追加して、テキスト コンテンツが設定されているかどうかを確認します。(I6e8fc)
API の変更
FontFamily
const が、ビルダークラスではなくFontStyle
に移動されました。(I06ced)FontSetting.weight
API とFontSetting.width
API を更新し、範囲のアノテーションを含めて、重みのパラメータを int に変更しました。(Ia726c)
バグの修正
- マテリアル ライブラリのスケーリング不可のテキストが、Android 14 の非線形フォント スケーリングで正しく動作するようになりました。(I6601e)
バージョン 1.2.0-alpha04
2024 年 5 月 29 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
がリリースされました。バージョン 1.2.0-alpha04 に含まれる commit はこちらをご覧ください。
API の変更
- 非対称のコーナー API を追加し、2 つの値で各コーナーの半径を個別に指定できるようにしました。(Icbd69)
FontSetting
API を拡張して、次を追加しました。FontStyle
にフォント ファミリー API を追加し、使用するフォント ファミリーの順序リストを指定できるようにしました。(Iba9f5)- マテリアルの
LayoutDefaults
で、コンテンツとセカンダリ ラベル間のスペースの高さの定数の名前を変更しました。元々は「エッジ コンテンツ」という接頭辞が付いていましたが、PrimaryLayout
とEdgeContentLayout
の両方に適用できるため、より汎用的な名前に変更しました。(I4dc32)
バグの修正
- 可変フォント軸の名前を
axisName
からaxisTag
に変更しました。(I02ba3)
バージョン 1.2.0-alpha03
2024 年 5 月 14 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit はこちらをご覧ください。
新機能
FontStyle
のカスタム重み値を設定する API を追加しました。(I7390a)
バグの修正
- ターゲット マップが空であるために
getTouchDelegateInfo
で発生するエラーを修正しました。(I2accf)
バージョン 1.2.0-alpha02
2024 年 5 月 1 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
がリリースされました。バージョン 1.2.0-alpha02 には、これらの commit が含まれています。
API の変更
- クリック可能な個々の要素でリップル フィードバックを無効にするためのサポートを追加しました。(If1ede)
- 変換の API は、その機能をサポートしていないため
ArcModifiers
から削除されました(Ic0827) ArcDirectionProp
ビルダーでコンストラクタに値が想定されるようになりました。(I76ada)PlatformDataValues.Builder.putAll
メソッドを使用すると、1 つのPlatformDataValue
を別のPlatformDataValue
に統合できます。(I50ba3)Text#setIsScalable
の名前がText#setScalable
に変更されました。(If920e)- Material Text では、サイズ変更可能なサイズ(ユーザーのフォントサイズが変更されたときに大きくなる)を使用するかどうかを設定できます。(Ibc849)
- コンテンツの説明を
TitleChip
に設定するオプションを追加しました。(I5d21f) - アイコンのみで正しく動作するように
CompactChip
を修正し、このオプションを許可するように API を更新しました。(I6589e)
バグの修正
- 初期化中にプラットフォーム データが重複する可能性がある問題を修正しました。(Iba0fd)
- ノードの費用を取得する新しいゲッターを
DynamicDataNode
に導入しました。この費用は、動的ノード割り当ての取得時に使用されます。現在、固定値を持つノードにはコストが 0 が割り当てられ、他のノードにはすべてコストが 1 が割り当てられます。(Ia33e1) NO_OP_QUOTA_MANAGER
からカウント ロジックを削除しました。(Ib50b8)setResponsiveContentInsetEnabled
なしでPrimaryLayout
が使用されている場合に警告を報告し、簡単な修正を提示する lint ルールを追加しました。(I12025)- 動的式ノードの数には上限があります。(Iffae8)
バージョン 1.2.0-alpha01
2024 年 3 月 6 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit はこちらをご覧ください。
新機能
ProtoLayout Arc
要素にArcDirection
(Clockwise
、Counterclockwise
、Normal
)を追加できるようになりました。この動作をArc
、ArcLine
、またはArcText
に追加すると、RTL レイアウトでの動作が修正されます。(I90699)EdgeContentLayout
が更新され、新しいsetResponsiveContentInsetEnabled
セッターが追加されました。これにより、UX ガイドラインとの整合性が改善され、プライマリ ラベルを固定された上部に配置し、ラベルをレスポンシブにインセットすることで、タイルの一貫性が確保されます。(I60175)- コンテンツが画面の端から外れないように、このレイアウトのプライマリ ラベル、セカンダリ ラベル、下部チップにレスポンシブ インセットを追加する
PrimaryLayout.setResponsiveContentInsetEnabled
を追加しました。(I0c457) CircularProgressIndicator
から外側の余白を削除して、小さいコンポーネントとして使用できるようにするメソッドを追加しました。(I55c06)
API の変更
- タイル レンダラで、すべてのテキスト要素のフォント パディングがデフォルトで除外されるようになりました。このパディングを追加するオプションはありません。(I3e300)
バグの修正
- テキストで、省略記号、文字間隔、中央揃えがすべて使用されている場合のテキストの配置に関する問題を修正しました。(I716c7)
- Skia の円弧描画に関する問題の回避策を追加しました。(I08f09)
- RTL レイアウトの
ArcLine
の描画方向を修正しました。(I6c141)
バージョン 1.1
バージョン 1.1.0
2024 年 2 月 7 日
androidx.wear.protolayout:protolayout-*:1.1.0
がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の重要な変更
ArcLine
でグラデーションのサポートと 360 度を超える長さの表現を改善。- 日時形式では、動的なデータ型に異なるタイムゾーンを指定できます。
- テキストの自動サイズ調整と省略オプションが改善され、切り捨てられたテキストを処理できるようになりました。
- スペーサーは、拡張されたディメンションとオプションの重みをサポートしています。
- すべての
ProtoLayout
API にスキーマ バージョン要件のアノテーションを追加。 - ユーザー補助の要件を満たすため、
Clickable
要素のタップ ターゲット領域を 48 dp x 48 dp に拡大しました。 - フォント パディングはデフォルトでオフになっています。これは、テキストを含むすべての Text 要素とマテリアル コンポーネントで唯一の動作です。
その他の変更
- バージョン 1.1.0 で導入された変更の詳細については、beta01 リリースノートをご覧ください。
バージョン 1.1.0-rc01
2024 年 1 月 24 日
androidx.wear.protolayout:protolayout-*:1.1.0-rc01
がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
PlatformTimeUpdateNotifierImpl
は、更新を有効にした直後にティックします。(I77145)CircularProgressIndicator
が RTL レイアウトで修正されました。今後は、すべてのケースで時計回りに表示されます。(I95ee3)- Skia の円弧描画に関する問題の回避策を追加しました。(I08f09)
バージョン 1.1.0-beta01
2024 年 1 月 10 日
androidx.wear.protolayout:protolayout-*:1.1.0-beta01
がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
Wear ProtoLayout 1.1.0-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear ProtoLayout 1.1 には、次の新機能と API が含まれています。
ArcLine
で、SweepGradient
にBrush
を追加してグラデーションをサポートし、既存のStrokeCap
にShadow
を追加してキャップ上にシャドウを表示し、360 度を超える長さをより適切に表現できるようになりました。DynamicInstant
は、タイムゾーン指定の日時形式をサポートしています。DynamicInstant
とDynamicDuration
は、状態データ型またはプラットフォーム データ型として使用できます。- テキストサイズの自動サイズ調整機能。複数のサイズを
FontStyle.setSizes
に設定できます。テキストサイズは、親の内部にあるスペースに基づいて自動的にスケーリングされます。また、TEXT_OVERFLOW_ELLIPSIZE
を追加し、TEXT_OVERFLOW_ELLIPSIZE_END
を非推奨にすることで、オーバーフローするテキストの省略オプションを改善しました。 Spacer
が、オプションの重みを持つ拡張ディメンションをサポートするようになりました。ExpandedDimensionProp
のビルド用にヘルパー メソッドDimensionBuilders.weight
を追加しました。Modifier.visible
を使用してレイアウト要素を動的に非表示化および表示可能にできるようになりました。これには、BoolProp
に動的値が含まれていることも含まれます。- すべての
ProtoLayout
API にスキーマ バージョン要件のアノテーションが追加され、新しい API を呼び出す前にバージョンを確認できるようになりました。 Clickable
を持つすべての要素のターゲット領域がレンダラで 48 x 48 以上に拡張され、ユーザー補助要件をより適切にサポートできるようになりました。- 他のマテリアル コンポーネントと Compose のイニシアチブに沿って、すべての
Text
要素でフォント パディングがデフォルトでオフになりました。また、AndroidTextStyle
と関連するセッターは公開 API から削除されました。また、以下のバグが修正されました。 - 他のコンテンツの前に配置できるように、
EdgeContentLayout
にエッジ コンテンツを配置するセッター機能を追加しました。 - 認識できない列挙値が検出された場合に、常に例外をスローする。
- 無効な数値(NaN または無限)を返すか、
ArithmeticException
をスローしたときに、式の結果を無効にします。
API の変更
- コンストラクタで色または
ColorStops
のいずれかを受け入れるようにSweepGradient
API を更新しました。(I6676f)
バグの修正
- 円弧要素の描画方向を設定するための制限付き API とレンダラ サポートを追加しました。(Idef5a)
RoundMode
は、指定しない場合、FloatToInt32Node
のFloor
にデフォルトで設定されます。指定されたRoundMode
が認識されない場合は、ノードは引き続き例外をスローします。(I1b2d8)
バージョン 1.1.0-alpha04
2023 年 12 月 13 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
VersionInfo
クラスはComparable
インターフェースを実装していません。(I8d13c)- レンダラで
TEXT_OVERFLOW_ELLIPSIZE
オプションがサポートされるようになりました。(I7f085)
API の変更
- テキスト オーバーフロー オプション
TEXT_OVERFLOW_ELLIPSIZE_END
のサポートを終了しました。動作が非常に類似している新しい APITEXT_OVERFLOW_ELLIPSIZE
を使用してください。(I822d8) - 他のマテリアル コンポーネントと Compose のイニシアチブに沿って、すべての Text 要素でフォント パディングがデフォルトでオフになりました。また、
AndroidTextStyle
と関連する setter が公開 API から削除されました。(I79094、Ib0b03、I32959、Iaf7d5、Ifa298、I0a4ae、Ida9d3) Modifier.hidden
がModifier.visible
に置き換えられました。(I56902)FontStyle#setSizes
がSpProp
引数ではなく int 引数を受け取るようになりました。(I02b37)
バグの修正
- 未定義または認識されない列挙型の値が見つかった場合に例外をスローします。(I9d2cf)
DynamicTypeBindingRequest
をリファクタリングします。(I27b57)- 無効な数値(NaN または無限)を返すか、
ArithmeticException
をスローしたときに、式の結果を無効にします。(I681ae)
バージョン 1.1.0-alpha03
2023 年 11 月 29 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- レイアウト要素の動的な非表示化/表示の切り替えの試験運用版のサポートを追加しました。(I64a78)
BoolProp
に動的値のサポートを追加しました。(I2fe96)ProtoLayout
API にスキーマ バージョンの要件アノテーションを追加しました。(I0f03c)TextOverflow
に新しいオプションを追加して API を拡張し、最大行数に達していない場合でも(ただしテキストのスペースが足りない場合)、固定された親コンテナ内のテキストを省略記号で表示できるようにしました。(I110a9)- 重み付きの
ExpandedDimensionProp
をビルドするためのヘルパー メソッドDimensionBuilders.weight
を追加しました。(I4f72b) DynamicInstant
とDynamicDuration
は、状態データ型またはプラットフォーム データ型として使用できます。(I6819f)
API の変更
DynamicZonedDateTime
を非表示にして、すべてのオペレーションをDyanamicInstant
に移動するように API を更新しました。(I34b94)- スペーサーで、幅と高さの拡張ディメンションがサポートされるようになりました。(Ie7c94)
- レンダラでクリック ターゲット領域の拡張をサポート(I39c79)
バージョン 1.1.0-alpha02
2023 年 11 月 15 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- API に
ArcLine
StrokeCap
Shadow
フィールドを追加しました。(I830ec) - API を拡張して、拡張する Spacer の幅または高さを指定できるようにしました。(I757ca)
- 親の内部にあるスペースに基づいてテキストサイズを自動的にスケーリングする試験運用版 API を追加しました。(Ibbe63)
- クリック可能な最小サイズをサポート(I178e3)
StrokeCap
Shadow
のレンダラ サポートを追加しました。(I48b17)ArcLine
でスイープ グラデーションのレンダラ サポートを追加。(I4d5bb)
バージョン 1.1.0-alpha01
2023 年 10 月 18 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
Arcline
にブラシ オプションを追加し、SweepGradient
をサポートしました。(Ie7ce3)- ゾーン付きの日時形式のサポートを追加しました。(Ibfae0)
- ゾーン付きの日時形式に必要なプロトコルと Java ラッパーを追加しました。(I97126)
DynamicDataValue
に保存されている値を読み取るためのゲッターを追加しました。(Ie6cea)- 他のコンテンツの前に配置できるように、
EdgeContentLayout
にエッジ コンテンツを配置するセッター機能を追加しました。(Ie8e8a)
バグの修正
- 複数の時間データソース登録を含む式がすぐに更新されない問題を修正しました。(I8e1a8)
- 差分更新中にルート要素を中央に配置するバグを修正しました。(Ie48f7)
- 未設定(または空)のレイアウト制約値が無視されなくなりました。(Ibc785)
- レイアウトが表示されてからパイプライン ノードが初期化されるまでの遅延を短縮しました。(I38d4e)
バージョン 1.0
バージョン 1.0.0
2023 年 8 月 9 日
androidx.wear.protolayout:protolayout-*:1.0.0
がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください。
1.0.0 の主な機能
ProtoLayout ライブラリには、さまざまな Wear OS サーフェスで使用できるレイアウトと式を作成する API が導入されています。たとえば、Tiles ライブラリはこれらの API を使用して、プラットフォームのデータ バインディング(タイルデータの更新を高速化)とアニメーションをサポートしています。
バージョン 1.0.0-rc01
2023 年 7 月 26 日
androidx.wear.protolayout:protolayout-*:1.0.0-rc01
がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
- Tiles から
ProtoLayout
に移行するには、こちらの手順に沿って操作してください。
API の変更
- Arc 要素から
setLayoutConstraintForDynamicAnchorAngle
メソッドとgetLayoutConstraintForDynamicAnchorAngle
メソッドを削除しました。これらのメソッドは誤って追加されたもので、指定されたレイアウトには影響しませんでした。(If7d01) ProtoLayout
のレイアウトの最大深度は、ネストされたLayoutElements
30 個に制限されています。(I8a74b)
バグの修正
SpanText
にDynamicColor
が設定されている場合にスローするチェックを追加しました。(I0e5bc)DAILY_CALORIES
データソースの単位が kcal であることを明確にしました。(Iaa785)
バージョン 1.0.0-beta01
2023 年 6 月 21 日
androidx.wear.protolayout:protolayout-*:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- 時間バインディング テストでクロックの設定を許可。(I05622)
API の変更
PlatformDataReceiver.onData()
とStateBuilders.Builder.addKeyToValueMapping
が、安全でない汎用型ではなく、DynamicDataKey
からDynamicDataValue
への型安全なマッピングを受け入れるようになりました。つまり、DynamicDataValue
はDynamicType
で型付けされます。HEART_RATE_ACCURACY_X
定数をPlatformHealthSources
のルートに移動し、他の Android 定数の配置と一致させました。値定数の代わりに、HEART_RATE_ACCURACY_X
int 定数がDynamicHeartRateAccuracy.constant()
とDynamicHeartRateAccuracy.dynamicDataValueOf()
で直接使用されるようになりました。(I82ff5)PlatformHealthSources.Constants
クラスが誤ってインスタンス化可能になりました。この問題は修正されています。(Icb849)PlatformTimeUpdateNotifier#setReceiver
が、通知するSupplier
関数とExecutor
ではなく、Runnable
を受け取るようになりました。(I9d938)PlatformTimeUpdateNotifier#setReceiver
のパラメータ型をCallable
からSupplier
に変更しました。(I664bf)CompactChip
とTitleChip
にアイコンを追加できるようになりました。(I5a01e)
バグの修正
- 動的フィールドを使用して Prop メッセージを更新し、代わりに oneof を使用するようにする(I81739)
- セッターがあるオーバーロードでセッターの実装を再利用(Ied70c)
- オーバーロードがあるセッター内で指紋を適切に記録する(I86ed2)
バージョン 1.0.0-alpha11
2023 年 6 月 7 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
新機能
- 心拍数測定の精度に関する
PlatformDataKey
を追加しました。(I7f9b8)
API の変更
StateBuilders#getIdToValueMapping
の名前をgetKeyToValueMapping
に変更し、戻り値の型をMap<<AppDataKey<?>,DynamicDataValue>
に変更します。(Iaa7ae)StateStore
を最終クラスにしました。(I408ca)TimeGateway
インターフェースは、時間データを更新する目的の頻度を提供するprotolayout-expression-pipeline
ライブラリのPlatformTimeUpdateNotifier
に置き換えられました。(I60869)PlatformDataProvider
のregister
/unregisterForData
の名前をset
/clearReceiver
に変更しました。(I14b02)- マテリアル テキストで、
getExcludeFontPadding
の名前がhasExcludeFontPadding
に変更されました。(Iea01d) - すべてのチップ コンポーネントに、ラベルを完全に調整するためのセッターが追加されました。すべてのチップに最小タップ可能ターゲットが適用されるようになりました。(I8ae92)
LayoutDefaults#BUTTON_MAX_NUMBER
の名前をMAX_BUTTONS
に変更しました。(I84788)DAILY_DISTANCE
の名前がDAILY_DISTANCE_M
に変更されました。(I4f758)
バグの修正
- プロパティ型のドキュメントを更新し、静的値が適用される理由を明確にしました。静的値が指定されていない場合に使用されるデフォルト値を指定します。(I155aa)
PlatformDataKey
Namespace は、Java スタイルの命名に従う必要があります。(I47bda)
バージョン 1.0.0-alpha10
2023 年 5 月 24 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
- アプリのプッシュ状態にアクセスするための
AppDataKey
を追加。プラットフォーム データにアクセスするためのPlatformDataKey
を追加。StateStore
に名前空間のサポートを追加。(I7985e) DynamicBool
のEqual
オペレーションとNotEqual
オペレーションをサポート。(I6a0c1)
API の変更
FontStyles
クラスは今回が最終版です。(Iaa2ea)LayoutElementBuilders#FontStyles
が非推奨になりました。androidx.wear.protolayout.Typography
を使用するか、独自のFontStyle
を作成してください。(Ic929b)Action#Builder
ネストされたインターフェースをAction
インターフェースから非表示にしました。Builder の実装は、LoadAction
クラスとLaunchAction
クラスですでに用意されています。(I1d70c)FloatProp
でのDynamicFloat
の使用を許可します。FloatProp
はレイアウト変更プロパティとして使用されないため、レイアウト制約は必要ありません。I286acLoalAction
アクションとSetStateAction
アクションは、まだサポートされていなかったため削除されました。(I5d6a6)- インライン画像リソースの ARGB_8888 形式のサポートを追加しました。(I8a07c)
StateEntryValue
の名前をDynamicDataValue
に変更し、DynamicDataKey
を使用するように状態 API を更新しました。(If1c01)StateStore
のインスタンスごとにメモリ使用量と状態更新時間を適切に抑制および制御するため、StateStore
で許可されるエントリの数を制限しています。そのため、マップ内にMAX_STATE_ENTRY_COUNT
を超えるエントリがないようにする必要があります。そうしないと、StateStore
の作成または更新時にIllegalStateException
が発生します。(Ibadb3)OnLoadTrigger
クラスとOnConditionMetTrigger
クラスを非表示にし、setTrigger
の名前をOnConditionMetTrigger
のsetCondition
に変更しました。(Ibf629)- パフォーマンスと互換性上の理由から、
ProtoLayout
レンダラはAnimatedVectorDrawable
リソースのすべての機能をサポートしていません。サポート対象のセットを確定するまで、これらの API は試験運用版としてマークされます。(Ic6daf) - 1 日の距離、1 日の消費カロリー、1 日の階数の動的タイプを追加しました。プラットフォームの健全性情報源のキーが
PlatformHealthSources.Keys
に移動しました(Ib7637) Easing.cubicBezier
メソッドはCubicBezierEasing.Builder
に代わります。これにより、EasingFunction
クラスが削除され、そのクラスの減衰定数にEasing
インターフェースから直接アクセスできるようになりました。また、setInfiniteRepeatable
はINFINITE_REPEATABLE_WITH_RESTART
とINFINITE_REPEATABLE_WITH_REVERSE
に置き換えられました。(Ib41e7)PlatformDataProvider
を実装して、心拍数と 1 日の歩数を提供します。SensorGateway
インターフェースが公開 API から削除されました。(I55b84)PlatformDataProvider
を追加し、式パイプラインのノードでプロバイダのサポート対象キーが必要な場合に、StateStore
を更新してPlatformDataProvider
に登録します。(Ib616a)SensorGateway
は状態を保持しなくなったため、Closeable
ではなくなりました。(I6b4f7)CircularProgressIndicator
の進行状況にDynamicFloat
でFloatProp
を使用できるようにします。これは、バージョン 1.2 をサポートするレンダラでサポートされています。古いレンダラは、指定されている場合はstaticValue
にフォールバックし、指定されていない場合は 0 にフォールバックします(I0d91b)MultiButtonLayout
定数はLayoutDefaults.MultiButtonLayoutDefaults
クラスにリファクタリングされ、レイアウト内のボタンの数に応じたボタンサイズの定数が含まれるようになりました。(I13973)- マテリアル テキストで
DynamicString
でStringProp
の使用をサポート。これは、バージョン 1.2 をサポートするレンダラでサポートされています。古いレンダラは、指定された静的な値にフォールバックします。Text#getText
の戻り値の型をString
からStringProp
に更新しました。(I7275b)
バージョン 1.0.0-alpha09
2023 年 5 月 10 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
新機能
- 試験運用版の拡張機能レイアウト要素を追加しました。ただし、これはデフォルトでは使用できず、レイアウト要素を認識できるレンダラ拡張機能が必要です。(I6581d)
ArcLine
のStrokeCap
サポートを追加しました。(I94951)- 条件付きインスタント オペレーションのサポートを追加しました。(I489a7)
- 条件付き期間オペレーションのサポートを追加しました。(Iab469)
- 秒単位で時間の長さを作成するサポートを追加しました。(Ib5fa1)
API の変更
enable/disablePlatformSource
メソッドがDynamicTypeEvaluator
から削除されました。更新は呼び出し元が行う必要があります。(I78c6d)- バインドされたデータ型のサイズの上限を設定できるようにします。(Ie2966)
protolayout-material
で動的コンテンツの説明のサポートを追加しました。(I62c8e)- AnimationParameters の duration と delay には long と
@IntRange
を使用します。(I388b6)
バージョン 1.0.0-alpha08
2023 年 4 月 19 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
新機能
- 「
AndroidTextStyle
」を「LayoutElementBuilders
」に追加しました。(I8d967) ProtoLayout
マテリアル テキストで、フォント パディングを除外する設定のサポートを追加しました。(I17f5d)- インライン画像で ARGB_8888 がサポートされるようになりました。(I18c1e)
DynamicColor
がonCondition
オペレーションをサポートするようになりました。(I10927)
API の変更
- リバース アニメーションのカスタム時間のサポート(I3251f)
SemanticDescription
修飾子を追加しました。また、ContentDescription
はバインディングできません。(I3f1d)DynamicBool.isFalse()
メソッドはDynamicBool.negate()
に置き換えられ、DynamicBool.isTrue()
は削除されました。また、NaNDynamicFloat
値とDynamicInt32
をDynamicFloat
に絞り込んだ場合、無効な動的結果が生成されるようになりました。(I6ac1e)- Int と浮動小数点数フォーマッタでビルダー パターンが使用されるようになりました。(Ieb213)
バグの修正
- アニメーション可能フィールドからフォールバック静的値が削除されました。(Ifcb01)
DynamicTypeValueReceiver#onPreUpdate
を削除しました。(I2dc35)- 動的式の文字列の長さに上限が設定されました。(I4c93)
- 必要に応じて、Gradle の依存関係が
implementation
ではなくapi
に正しく設定されるようになりました。(I40503)
バージョン 1.0.0-alpha07
2023 年 4 月 5 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
API の変更
sensorGateway#registerSensorGatewayConsumer
は、Consumer のメソッドではなく、データ型をパラメータとして受け取ります。(Icf314)ObservableStateStore
の名前をStateStore
に変更しました。(Ieb0e2)- コンストラクタ引数の代わりに
DynamicTypeEvaluator.Builder
を追加し、ObservableStateStore
など、より多くのオプション引数を許可しました。デフォルトで空のストアになります。(I6f832) DynamicTypeEvaluator
のパラメータの順序をリファクタリングしました。(Ic1ba4)
バグの修正
- プラットフォーム センサー ソースからダウンストリーム ノードにシグナルを正しく伝播する(I5a922)
バージョン 1.0.0-alpha06
2023 年 3 月 22 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- 動的式で心拍数と 1 日の歩数を使用するための試験運用版 API を追加しました。(Ifd711)
- アニメーションの逆再生と順再生の遅延のサポートを追加しました。(Ic25f7)
- 枠線と背景に
DynamicColor
のサポートを追加しました DimensionBuilder
の型に動的値のサポートを追加しましたtiles-material
のレイアウトとコンポーネントがprotolayout-material
に移動
API の変更
- 「
LoadActionListener
」を「ProtoLayoutViewInstance
」に追加しました。(If7806)
バグの修正
FloatNodesTest
を追加しました。(Id7281)- 構造化ビットマップを読み込めない場合にレンダラがクラッシュする問題を修正しました。
バージョン 1.0.0-alpha05
2023 年 3 月 8 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
Modifiers
オブジェクトに試験運用版の「コンテンツの更新」アニメーションを追加しました。このアニメーションは、レイアウトの更新中に(この修飾子を持つ)要素またはその子のいずれかが変更されるたびにトリガーされます。(bd03e5d)
API の変更
Repeatable
にforwardRepeatDelayMillis
とreverseRepeatDelayMillis
を追加しました。また、AnimationSpec
のdelayMillis
の名前をstartDelayMillis
に変更しました。(Ifb266)DynamicTypeEvaluator.bind
メソッドが Executor を受け取るようになりました。(I346ab)- 動的型がバインドされた後に評価をトリガーするために、
BoundDynamicType
にstartEvaluation
メソッドを追加しました。(I19908)
バグの修正
- Animator オブジェクトは、1 つの要素の後のアニメーションで再利用されます。(Ia3be9)
バージョン 1.0.0-alpha04
2023 年 2 月 22 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
ObservableStateStore
で、キーが削除されたときにリスナーに通知されるようになりました。- レンダラ スキーマのバージョンとフォント スケールを
DeviceParameters
に追加しました(これにより、さまざまなバージョンとフォント設定に応じてレイアウトを条件付きで作成できます)。 DynamicInt32
値のアニメーション化のサポートを追加しました。(I05485)OnLoad
トリガーとOnConditionalMet
トリガーを追加しました。これらを使用して、トリガーをサポートするアニメーションを開始できます。- 拡張ディメンションのレイアウト重みと、折り返しディメンションの最小サイズを追加しました。
- 時間と即時動的型が追加されました。これらは、動的な式で時間の瞬間または時間を表すために使用できます。
- レイアウト リソースとして
AnimatedVectorDrawable
とSeekableAnimatedVectorDrawable
のサポートを追加しました。
API の変更
- センサーデータには API 29 以降が必要です。(I8099e)
- 2 つの
launchAction
ヘルパー メソッド(アクティビティの起動用)を追加しました。
バグの修正
- タイル アニメーションで
set/getSpec
の名前をset/getAnimationSpec
に変更しました。(I3d74b)
バージョン 1.0.0-alpha03
2023 年 2 月 8 日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- protolayout-express ライブラリ内の Dynamic 型に
toByteArray()
とfromByteArray()
を追加しました。 - protolayout-expression ライブラリ内の Dynamic 型に
toString()
を追加しました。 - Dynamic 型の評価サポートを追加しました。protolayout-expression-pipeline ライブラリの
DynamicTypeEvaluator
クラスを使用して、以前作成の Dynamic 型(DynamicString
、DynamicFloat
など)について評価する(および更新された値を受け取る)ことができます。 - アニメーションを(エバリュエータによって無効化されているか、実行中のアニメーションの上限に達したために)再生できない場合は、アニメーション化可能なノードに設定された静的な値が、アニメーションの置換に使用されます。
バージョン 1.0.0-alpha02
2023 年 1 月 25 日
androidx.wear.protolayout:protolayout:1.0.0-alpha02
、androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
、androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
androidx.wear.tiles:tiles
のレイアウト ビルダーがandroidx.wear.protolayout:protolayout
に移動しました。androidx.wear.tiles:tiles
内のレイアウト ビルダーは次のアルファ版リリースのいずれかで非推奨となります。
バージョン 1.0.0-alpha01
2023 年 1 月 11 日
androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
と androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- このリリースでは、動的変数から式を作成するための新しいライブラリ「ProtoLayout Expression」が導入されました。