WindowManager
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2025 年 9 月 24 日 | 1.5.0 | - | - | - |
依存関係の宣言
Window Manager への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.window:window:1.5.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.0" // For testing implementation "androidx.window:window-testing:1.5.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.0") // For testing implementation("androidx.window:window-testing:1.5.0") }
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.5
バージョン 1.5.0
2025 年 9 月 24 日
androidx.window:window-*:1.5.0 がリリースされました。バージョン 1.5.0 にはこれらの commit が含まれています。
1.4.0 以降の重要な変更:
- Large と XLarge の
WindowSizeClassブレークポイントを追加しました。(I40d85) WindowMetricsの計算をアプリケーション コンテキストに拡張します。(I8eeeb、b/360934048)WindowLayoutInfoへの直接アクセスを可能にするゲッターを提供(Ie9513)- アプリのプロセスが再起動されたときに、エンベディングの状態を自動保存し、エンベディングの状態を自動復元する API を導入します。(Ie0295)
- 試験運用版の
WindowInsetsAPI を削除しました。(I68a71)
バグの修正
- 一部のケースで
EmbeddingRuleが異なるhashCodeを返す問題を修正しました。(I748cc) - デバイス実装のエラーが原因で
NullPointerExceptionが発生する可能性のある問題を修正しました。 - proguard が未使用のクラスを削除したために
ActivityEmbeddingの安全性チェックが失敗する問題を修正しました。
外部からの協力
- すべての KMP プラットフォームを
window-coreに追加(If3d7c)
バージョン 1.5.0-rc01
2025 年 8 月 27 日
androidx.window:window-*:1.5.0-rc01 がリリースされました。バージョン 1.5.0-rc01 にはこれらの commit が含まれています。
バグの修正
- デバイス実装のエラーが原因で
NullPointerExceptionが発生する可能性のある問題を修正しました。 - proguard が未使用のクラスを削除したために
ActivityEmbeddingの安全性チェックが失敗する問題を修正しました。
バージョン 1.5.0-beta02
2025 年 8 月 13 日
androidx.window:window-*:1.5.0-beta02 がリリースされました。バージョン 1.5.0-beta02 にはこれらの commit が含まれています。
新機能
- 軽微なバグを修正しました。
外部からの協力
- すべての KMP プラットフォームを
window-coreに追加(If3d7c)
バージョン 1.5.0-beta01
2025 年 7 月 2 日
androidx.window:window-*:1.5.0-beta01 がリリースされました。バージョン 1.5.0-beta01 にはこれらの commit が含まれています。
バージョン 1.5.0-alpha02
2025 年 5 月 7 日
androidx.window:window-*:1.5.0-alpha02 がリリースされました。バージョン 1.5.0-alpha02 には、これらの commit が含まれています。
API の変更
- Large と XLarge の
WindowSizeClassブレークポイントを追加しました。(I40d85) WindowMetricsの計算をアプリケーション コンテキストに拡張します。(I8eeeb、b/360934048)WindowLayoutInfoへの直接アクセスを可能にするゲッターを提供(Ie9513)- アプリのプロセスが再起動されたときに、エンベディングの状態を自動保存し、エンベディングの状態を自動復元する API を導入します。(Ie0295)
- 試験運用版の
WindowInsetsAPI を削除しました。(I68a71) - いくつかのコンストラクタを非表示にしました(I87b8d)
バグの修正
- 一部のケースで
EmbeddingRuleが異なるhashCodeを返す問題を修正しました。(I748cc)
バージョン 1.5.0-alpha01
2025 年 3 月 12 日
androidx.window:window-*:1.5.0-alpha01 がリリースされました。バージョン 1.5.0-alpha01 にはこれらの commit が含まれています。
新機能
- 次の 1.5.0 の初回リリース。
バージョン 1.4
バージョン 1.4.0
2025 年 5 月 20 日
androidx.window:window-*:1.4.0 がリリースされました。バージョン 1.4.0 にはこれらのコミットが含まれています。
1.3.0 以降の重要な変更
- アクティビティの埋め込み
- 起動アニメーションをカスタマイズする API
- インタラクティブな分割線
ActivityStack固定- 全画面表示ダイアログの暗転
- 埋め込みアクティビティ ウィンドウ情報コールバック
ActivityStack管理の改善- 指定された
ActivityStackにアクティビティを起動する
WindowMetricsCalculator- テスト容易性のサポートを改善
WindowMetricswithDpとheightDpを計算する便利なメソッド- 境界チェックを
isAtLeastに更新し、下限を使用して新しい値の追加をサポート
WindowSizeClassWindowMetricsから計算する方法を追加
WindowInfoTracker- デバイスでサポートされているポーズを検出する API を追加
バージョン 1.4.0-rc02
2025 年 4 月 23 日
androidx.window:window-*:1.4.0-rc02 がリリースされました。バージョン 1.4.0-rc02 にはこれらの commit が含まれています。
バグの修正
ActivityEmbeddingの ProGuard クラッシュを修正しました。
バージョン 1.4.0-rc01
2025 年 3 月 12 日
androidx.window:window-*:1.4.0-rc01 がリリースされました。バージョン 1.4.0-rc01 には、これらの commit が含まれています。
新機能
WindowSizeClassAPI の更新。- アクティビティ埋め込み API の更新。
バージョン 1.4.0-beta02
2025 年 2 月 12 日
androidx.window:window-*:1.4.0-beta02 がリリースされました。バージョン 1.4.0-beta02 にはこれらの commit が含まれています。
新機能
- プロパティにのみ存在し、ゲッターには存在しないアノテーションを修正。
バージョン 1.4.0-beta01
2025 年 1 月 15 日
androidx.window:window-*:1.4.0-beta01 がリリースされました。バージョン 1.4.0-beta01 にはこれらの commit が含まれています。
新機能
ActivityEmbeddingアニメーションのカスタマイズを可能にする API を追加- ウィンドウの指標を偽装できるように
WindowMetricsCalculatorテスト API を拡張しました。
API の変更
- いくつかのコンストラクタを非表示にしました(I87b8d)
- アプリが
ActivityEmbeddingアニメーションをカスタマイズできるようにしました(If31a8) watchosDeviceArm64KMP ターゲットとターゲット kotlin 1.9 のサポートを追加しました(Icf15d、b/364652024)WindowMetricsCalculatorAPI を公開します。(I1cebf)
バグの修正
- このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin を使用している場合、次のコンパイラ引数を使用して正しい使用法を適用する必要があります。
-Xjspecify-annotations=strict(Kotlin コンパイラのバージョン 2.1.0 以降ではデフォルトです)。(Ie69ac、b/326456246)
バージョン 1.4.0-alpha05
2024 年 10 月 16 日
androidx.window:window-*:1.4.0-alpha05 がリリースされました。バージョン 1.4.0-alpha05 には、これらの commit が含まれています。
新機能
WindowMetricsからwidthDpとheightDpを取得する便利な関数を追加します。
API の変更
widthDpとheightDpをWindowMetricsに追加します。(Ide026)- 試験運用版の
WindowInsetsAPI を削除しました。(I68a71) - 境界チェック メソッド名を
isAtLeastに更新(Ib0ab7)
バージョン 1.4.0-alpha04
2024 年 10 月 2 日
androidx.window:window-*:1.4.0-alpha04 がリリースされました。バージョン 1.4.0-alpha04 にはこれらの commit が含まれています。
API の変更
WindowMetricsからWindowSizeClassを計算するメソッドを追加しました。(874dba)- わかりやすくするため、
WindowSizeClassメソッドをcontainsWidthDp、containsHeightDp、containsWindowSizeDpに変更しました。(fa760d) WindowAreaControllerを抽象基底クラスに変換します。(I90893)
バグの修正
- テスト
FoldingFeatureの作成時に相対境界のサポートを追加しました。(2e6b3e) WindowSizeClassを選択する際の一般的なバグを修正しました。
バージョン 1.4.0-alpha03
2024 年 9 月 18 日
androidx.window:window-*:1.4.0-alpha03 がリリースされました。バージョン 1.4.0-alpha03 には、これらの commit が含まれています。
新機能
WindowMetricsからWindowSizeClassを取得するユーティリティ メソッドを追加します。(I83f1f)isAtLeastをcontainsBreakpointに変更しました。(I85b47)- 浮動小数点数を使用して
computeWindowSizeClassにオーバーロードを追加します。(I3dcb2、b/364677934、b/364677802、b/364680886)
バグの修正
- デフォルトの
WindowSizeClassブレークポイント セットに欠落していたブレークポイントを追加します。 - コンパクト ディメンションが正しく選択されない場合があるバグを修正しました。
バージョン 1.4.0-alpha02
2024 年 9 月 4 日
androidx.window:window-*:1.4.0-alpha02 がリリースされました。バージョン 1.4.0-alpha02 には、これらの commit が含まれています。
新機能
カスタム WindowSizeClass のサポートを追加しました。
- デベロッパーが独自のコンストラクタを使用できるように、
WindowSizeClassのコンストラクタを開きます。 - デベロッパーが
WindowSizeClass値の範囲を処理できるように、isAtLeastユーティリティ メソッドを追加しました。 Set<WindowSizeClass>に拡張関数を追加して、Set から最適な一致を計算します。- Android の推奨ブレークポイントの定数を追加します。
- Android の推奨ブレークポイントに対応するブレークポイント セットを追加します。
API の変更
WindowSizeClassの境界メソッド名を更新しました。(If89a6)- 将来的に新しいブレークポイント値を追加できるように、
WindowSizeClassAPI を更新します。絶対的な境界ではなく下限を使用し、WindowSizeClassを処理する際に下限チェックを使用することをデベロッパーに推奨します。既存のWindowWidthSizeClassとWindowHeightSizeClassは、今後開発されないため、非推奨になります。(I014ce)
バージョン 1.4.0-alpha01
2024 年 8 月 7 日
androidx.window:window-*:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 には、これらの commit が含まれています。
新機能
- ActivityStack Pinning を使用すると、アプリは 1 つのコンテナにコンテンツを固定し、そのナビゲーションを他のコンテナから分離できます。
- インタラクティブな分割線を使用すると、アプリは分割表示で 2 つのアクティビティの間に固定またはドラッグ可能な分割線を表示できます。
- 全画面表示ダイアログを暗くすると、アプリでダイアログを暗くする領域を指定して、タスク ウィンドウ全体を暗くするか、ダイアログを表示するコンテナのみを暗くするかを選択できます。
- 埋め込みアクティビティ ウィンドウ情報コールバックを使用すると、アプリは埋め込みアクティビティ ウィンドウの更新を継続的に受け取ることができます。
- アニメーションの背景の埋め込みにより、アプリはアニメーションの背景を指定できるようになり、
ActivityEmbeddingが使用されている場合の切り替えアニメーションの品質が向上します。 - ActivityStack 管理の改善により、アプリは
ActivityEmbeddingが使用されているときにActivityStacksをより詳細に制御できるようになります。たとえば、次のような制御が可能です。 - 指定された
ActivityStackでアクティビティを起動する ActivityStackを終了する
API の変更
新しい API
WindowInfoTracker#supportedPostures:- 折りたたみ式デバイスがテーブルトップ モードをサポートしているかどうかを判断する API。WindowAreaSessionPresenter#getWindow を追加
ActivityStackの固定をサポートする API を追加:SplitPinRuleクラスSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
インタラクティブな区切り線を有効にして構成するための API を追加
DividerAttributesクラスSplitAttributes.Builder#setDividerAttributes
ダイアログの
EmbeddingConfigurationとDimAreaBehaviorを設定する API を追加EmbeddingConfigurationクラスDimAreaBehaviorクラスActivityEmbeddingController#setEmbeddingConfiguration
埋め込みアクティビティ ウィンドウ情報の更新を受信する API を追加
EmbeddedActivityWindowInfoクラスActivityEmbeddingController#embeddedActivityWindowInfo
埋め込みアニメーションの背景を設定する API を追加
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
ActivityStacksを完了する API を追加ActivityEmbeddingController#finishActivityStacks
起動する
ActivityStackを設定する API を追加ActivityEmbeddingOptions#setLaunchingActivityStack
次の API は安定版であり、試験運用版ではなくなりました。
ActivityEmbeddingController#invalidateVisibleActivityStacks(SplitController#invalidateTopVisibleSplitAttributes から移動)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
1.4 用の API を追加します。(I56774)
バグの修正
- セッションがアクティブな場合に、ACTIVE ではなく UNAVAILABLE が返される一部のデバイスのバグを修正しました。
- 不安定な API サポートのため、
vendorApiLevelが 2 のデバイスでのtransferActivityToWindowAreaのサポートを削除します。 - Activity Embedding のドラッグ可能な仕切りを全画面表示にドラッグできるようにする API を導入しました。(I645c9)
- アプリが
SplitAttributesのアニメーション パラメータを介してActivityEmbeddingアニメーションを無効にできるようにします。(Idc01a) - AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合、および AGP 8.1 以降(D8 バージョン 8.1 など)ですべてのビルドで、API モデリングを介して自動的に行われるため、新しいプラットフォーム API へのアクセスの手動でのアウトライン設定を削除しました。AGP を使用していないクライアントは、D8 バージョン 8.1 以降に更新することをおすすめします。詳しくは、こちらの記事をご覧ください。(Ia60e0、b/345472586)
- 拡張機能が
SplitAttributesのアニメーション パラメータを取得できるようにして、デバイスがアニメーションの切り替えに使用できるようにします。(Iede00) - オーバーレイ API を非表示(Ic4251)
- 分割の固定またはドラッグ可能な区切り線を構成する API を導入(Ia7a78)
WindowMetricsに密度を追加しました(Id6723)SupportedPosturesを取得する API を追加しました。(If557a)- 試験運用版 API から
setLaunchingActivityStackを削除しました(I191cf) ActivityEmbeddingController#embeddedActivityWindowInfoを導入(I24312)#getTokenを非推奨にし、#getActivityStackTokenを追加しました(Ie0471)embeddedActivityWindowInfoフロー API のコールバック アダプタを導入(Ida77f)- overlayInfo Flow API のコールバック アダプタを追加(I7264f)
- テスト用に
extensionsVersionをオーバーライドするWindowSdkExtensionsRuleを導入します。(Ifb928) - -
ActivityOptionsCompatの使用と互換性を持たせるため、#setLaunchingActivityStackを Bundle に移行します。- ユーザーは
ActvityOptions自体ではなくactivityOptions.toBundleを渡す必要があります。 #setLaunchingActivityStack(Activity)を削除しました。ユーザーは、ActivityEmbeddingController#getActivityStac(Activity)を使用してActivityStackを取得し、ActivityStackを#setLaunchingActivityStackに渡すように移行する必要があります。(Ie0ccc)
- ユーザーは
- - WM Jetpack と拡張機能間の通信用の識別子として
ActivityStack.TokenとSpltInfo.Tokenを導入します。- IBinder の代わりに Token を取得/返すように API を非推奨/置き換え。(I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacksを導入します。SplitController#invalidateTopVisibleSplitAttributesを削除しました。この機能は#invalidateVisibleActivityStacksに統合されています(I02ef5)
- - エンベディング構成を設定する API を追加しました。(I59a4a)
- - 上部の
ActivityStackandroidx.WindowAPI の固定/固定解除を追加- デモアプリを更新して、上部の
ActivityStackの固定/固定解除を許可(I24dd3)
- デモアプリを更新して、上部の
#finishActivityStacksとActivityEmbeddingOptionsを再度追加しました(Ic1ab3)- 不安定な API を削除しました。(Ibc534、b/302380585)
バージョン 1.3
バージョン 1.3.0
2024 年 5 月 29 日
androidx.window:window-*:1.3.0 がリリースされました。バージョン 1.3.0 にはこれらの commit が含まれています。
1.2.0 以降の重要な変更
- ウィンドウ サイズクラスの Kotlin マルチプラットフォームのサポート。
バージョン 1.3.0-rc01
2024 年 5 月 14 日
WindowManager Jetpack 1.3 では、WindowSizeClass 機能の Kotlin マルチプラットフォーム サポートと、複数のバグの修正が行われています。
androidx.window:window-*:1.3.0-rc01 がリリースされました。バージョン 1.3.0-rc01 には、これらの commit が含まれています。
バージョン 1.3.0-beta02
2024 年 5 月 1 日
androidx.window:window-*:1.3.0-beta02 がリリースされました。バージョン 1.3.0-beta02 にはこれらの commit が含まれています。
API の変更
- カスタム
WindowSizeClassの作成と使用のサポートを削除しました。(Id1143)
バグの修正
- 特定のデバイス実装で ProGuard が一部のファイルを削除することによって発生する
KotlinReflectionInternalErrorを修正しました。(I01b02)
バージョン 1.3.0-beta01
2024 年 4 月 3 日
androidx.window:window-*:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 には、これらの commit が含まれています。
バージョン 1.3.0-alpha03
2024 年 3 月 6 日
androidx.window:window-*:1.3.0-alpha03 がリリースされました。バージョン 1.3.0-alpha03 には、これらの commit が含まれています。
API の変更
WindowSizeClassUtilをより焦点を絞ったメソッドに分割します。(Ie9292)- 復元
WindowSizeClass#compute(I21355、b/324293374)
バグの修正
- 提供されたコンテキストが正しくアンラップされないクラッシュを修正しました。(94d10ce、b/318787482)
バージョン 1.3.0-alpha02
2024 年 2 月 7 日
androidx.window:window-*:1.3.0-alpha02 がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- 独自のサイズクラスを使用したいデベロッパーの柔軟性を高めるために、Window Size Class API の API サーフェスに更新が行われました。
API の変更
- 幅セレクタに高さの制約を追加します。(I23393)
- セットから
WindowSizeClassを選択するためのユーティリティ関数を追加します。デベロッパーが独自のセレクタを作成できるように、試験運用版のスコアリング関数を追加しました。指定された境界内で最も広いWindowSizeClassを選択するセレクタ拡張関数を追加します。(I0c944) - カスタム ブレークポイントを追加できるように、
WindowSizeClassコンストラクタを開きます。(Ic1ff3) - 幅、高さ、密度からサイズクラスを作成するコンビニエンス関数を追加。(If67f4)
バグの修正
- 浮動小数点値が 0 に切り捨てられた場合の例外を修正。(272ffac)
バージョン 1.3.0-alpha01
2023 年 11 月 15 日
androidx.window:window-*:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- 背面画面にアクセスするための試験運用版ウィンドウ API を公開します。
FoldingFeatureを作成するためのテスト API が安定版になりました。- 偽の
ActivityEmbedding値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRuleは、UiContextから値を取得するときにオーバーライドを報告するようになりました。WindowInfoTrackerは、折りたたみ機能のデータをUiContextパラメータにレポートします。- デバイスで拡張機能のバージョンを公開します。
- ユーザーのアプリごとのオーバーライドの
WindowProperties定数:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE- アプリがユーザー向けの縦横比の互換性オーバーライドをオプトアウトしたことをシステムに通知します。PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE- ユーザーのアスペクト比の互換性オーバーライド設定の全画面オプションをアプリがオプトアウトしたことをシステムに通知します
バージョン 1.2
バージョン 1.2.0
2023 年 11 月 15 日
androidx.window:window-*:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の重要な変更
- 背面画面にアクセスするための試験運用版ウィンドウ API を公開します。
FoldingFeatureを作成するためのテスト API が安定版になりました。- 偽の
ActivityEmbedding値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRuleは、UiContextから値を取得するときにオーバーライドを報告するようになりました。WindowInfoTrackerは、折りたたみ機能のデータをUiContextパラメータにレポートします。- デバイスで拡張機能のバージョンを公開します。
バージョン 1.2.0-rc01
2023 年 11 月 1 日
androidx.window:window-*:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください。
新機能
- 背面画面にアクセスするための試験運用版ウィンドウ API を公開します。
FoldingFeatureを作成するためのテスト API が安定版になりました。- 偽の
ActivityEmbedding値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRuleは、UiContextから値を取得するときにオーバーライドを報告するようになりました。WindowInfoTrackerは、折りたたみ機能のデータをUiContextパラメータにレポートします。- デバイスで拡張機能のバージョンを公開します。
バージョン 1.2.0-beta04
2023 年 10 月 18 日
androidx.window:window-*:1.2.0-beta04 がリリースされました。バージョン 1.2.0-beta04 に含まれる commit については、こちらをご覧ください。
API の変更
- 不安定な API を削除しました。(Ibc534、b/302380585)
バージョン 1.2.0-beta03
2023 年 9 月 20 日
androidx.window:window-*:1.2.0-beta03 がリリースされました。バージョン 1.2.0-beta03 に含まれる commit については、こちらをご覧ください。
新機能
- 特定のバージョンの拡張機能を必要とする API の
RequiresApiチェックを追加しました。 - デバイスで拡張機能のバージョンを公開する API を追加します。
API の変更
- 公開 API に必要な Window SDK 拡張機能のバージョンをアノテーションします。
- アクティビティの埋め込みコンポーネントの
isXXXSupportedを削除します。(Ie3dae)
- アクティビティの埋め込みコンポーネントの
- デバイスの拡張機能のバージョンを報告する
WindowSdkExtensionsを導入します。- 必要な拡張機能の最小バージョンをアノテーションするために
RequiresWindowSdkExtensionを導入します。(I05fd4)
- 必要な拡張機能の最小バージョンをアノテーションするために
WindowAreaInfo#getCapabilityを null 値を許容しないようにします。(I17048)
バージョン 1.2.0-beta01
2023 年 7 月 26 日
androidx.window:window-*:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- 背面画面にアクセスするための試験運用版ウィンドウ API を公開します。
FoldingFeatureを作成するためのテスト API が安定版になりました。- 偽の
ActivityEmbedding値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRuleは、UiContextから値を取得するときにオーバーライドを報告するようになりました。WindowInfoTrackerは、折りたたみ機能のデータをUiContextパラメータにレポートします。
API の変更
WindowAreaAPI を試験運用版としてマークし、1.3 の安定版リリースで API の変更を継続できるようにしました(I857f5)- API ファイルを更新し、互換性の抑制をアノテーションしました(I8e87a、b/287516207)
バージョン 1.2.0-alpha03
2023 年 6 月 21 日
androidx.window:window-*:1.2.0-alpha03 がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- API サーフェスから非推奨の API を削除しました。
- 同時ディスプレイをサポートする API を追加しました。
- 強制的なサイズ変更のオーバーライドをオプトアウトするプロパティを追加。
- 最小アスペクト比のオーバーライドをオプトアウトするプロパティを追加。
- アクティビティ埋め込みに関する単体テストをサポートするために
ActivityEmbeddingRuleを安定化しました。
API の変更
バグの修正
- 強制サイズ変更オーバーライドのオプトアウト互換性プロパティを追加(Ie7ab1)
- 拡張機能インターフェースから
SESSION_STATE_CONTENT_INVISIBLEを削除します。(I6ed19) - Activity の埋め込みに関する単体テストをサポートするため、
ActivityEmbeddingRuleを安定化しました。(I8d6b6) - 最小アスペクト比のオーバーライドのオプトアウト互換性プロパティを追加(I66390)
- サポートが終了した WindowArea API を削除しました(Ieb67c)
- 向きリクエスト ループ プロパティの名前を
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTEDに変更。(Ie2fbd) - ウィンドウ領域セッション定数名を更新(I83675)
- 検出された場合にオリエンテーション リクエスト ループを無視するオプトアウト互換性プロパティを追加(I0a7a2)
WindowAreaComponent#STATUS_ACTIVEを追加して、機能がすでに有効になっていることを示します。(I62bc3)RearDisplayPresentationModeAPI を追加しました(I0401c)- 安定版の背景色 API を削除しました。(I34c3e)
- Window Area API を非表示にします。(I39de0)
SplitControllerのSplitInfoをオーバーライドするメソッドを追加します。SplitInfoとActivityStackのダブルを作成するテストメソッドを追加します。(Icd69f)ActivityRule.Builderのタグを省略可能にします。(Ib0b44)RatioSplitType、ExpandContainersSplit、HingeSplitTypeを削除しました。現在はSplitTypeです。#splitEqually()、#expandContainers()、#splitByHingeを定数SplitType SPLIT_TYPE_EQUAL、SPLIT_TYPE_EXPAND、SPLIT_TYPE_HINGEに置き換えます。- ヒンジ分割タイプのフォールバック タイプを設定する機能を削除しました。現在のデバイスまたはウィンドウの状態によりヒンジ分割タイプを適用できない場合、親タスク コンテナを均等に分割するフォールバックが行われます。
SplitController#setSplitAttributesCalculatorを使用して、フォールバック分割タイプをカスタマイズします。(Ifcc59)
add/removeSplitCallbackのサポートを終了add/removeSplitCallbackをSplitControllerCallbackAdapterに移動SplitInfoリストを取得するFlowサポートを追加(I7f1b6)
ActivityEmbeddingControllerのテストルールを追加しました(I42e9b)ActivityOptionsCompatの名前をActivityEmbeddingOptionsに変更(I89301)- アクティビティの埋め込みが利用可能かどうかを示す
splitSupportStatusを追加しました。(I10024) DEFAULTの値をより適切に表すためにSplitAttributes.BackgroundColorを導入します。不透明でないアニメーションの背景色はサポートされていないことを明確にします。不透明でない色はデフォルトとして扱われ、現在のテーマのウィンドウの背景色が使用されます。(Ic6b95)alwaysAllow()とalwaysDisallow()をALWAYS_ALLOWとALWAYS_DISALLOWに置き換えました。(I3057b)SplitRule、SplitAttributes、SplitAttributesCalculatorの API を追加しました。(I92d23)TestActivityStackを追加して、テスト用のActivityStackを作成- テスト用の
SplitInfoを作成するTestSplitInfoを追加しました。(I8e779)
- テスト用の
- デベロッパーがカスタマイズした
SplitAttributesCalculatorを検証できるように、偽のSplitAttributesCalculatorParamsを作成する方法を追加(Id4a6e) WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)とWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)を追加しました。(I66c7f)
バージョン 1.2.0-alpha02
2023 年 6 月 7 日
androidx.window:window-*:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- テスト API を更新して、未指定の折りたたみ機能の定数を含めます。
WindowLayoutInfoPublishRuleでオーバーライドすると、Context ベースの API を含むwindowLayoutInfoのすべての値がオーバーライドされます。
API の変更
- 中央折りたたみ機能が指定されていない場合の定数を追加。(I7530c)
バグの修正
ContextベースのWindowLayoutInfoでオーバーライドをサポートするようにWindowLayoutInfoPublishRuleを更新します。(I2037a)
バージョン 1.2.0-alpha01
2023 年 5 月 24 日
androidx.window:window-*:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
アクティビティ埋め込みと WindowLayoutInfoTracker に関するテスト API を安定化しました。ActivityEmbeddingRule が安定版に昇格しました。WindowMetricsCalculatorRule が安定版に昇格しました。テスト用の FoldingFeature を作成するユーティリティ関数が安定版に昇格しました。
API の変更
- Activity の埋め込みに関する単体テストをサポートするため、
ActivityEmbeddingRuleを安定化しました。(I8d6b6) WindowMetrisCalculatorTestRuleは安定しており、JVM テストのスタブ指標を許可します。正確な結果を得るには、エミュレータを使用することをおすすめします。- JVM テストをサポートするため、
WindowLayoutInfoのテスト API を安定化しました。(Ie036e) - テスト用の折りたたみ機能の値に
IntRangeを追加します。(I69f7d)
バージョン 1.1
バージョン 1.1.0
2023 年 6 月 7 日
androidx.window:window-*:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の重要な変更
アクティビティの埋め込み
- アプリ マニフェストの
<application>タグのブール値プロパティとしてPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDを追加しました。 - 分割機能を利用できない理由に関する詳細情報を提供するため、
isSplitSupportedを非推奨とし、splitSupportStatusに置き換えました。 splitSupportStatusプロパティの状態定数を提供するために、SplitController.SplitSupportStatusネストされたクラスを追加しました。SplitControllerを複数のモジュールにリファクタリングしました。ActivityまたはActivityStack関連 API のActivityEmbeddingControllerモジュール。isActivityEmbeddedをSplitControllerからActivityEmbeddingControllerに移動しました。EmbeddingRule関連のオペレーション用のRuleControllerモジュール:SplitControllerAPI を削除しました。clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()RuleControllerAPI を追加しました。addRule()- ルールを追加するか、同じタグを持つルールを更新します。removeRule()- 登録済みルールのコレクションからルールを削除します。setRules()- ルールのコレクションを確立します。clearRules()- 登録されているすべてのルールを削除します。parseRules()- XML ルール定義からルールを解析します。
- すべてのモジュールでは、
#getInstance()メソッドで初期化されるコンテキストが必要です。以下に例を示します。ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- 表示のアスペクト比に関連する列挙型のような動作定数を定義する
EmbeddingAspectRatioクラスを追加しました。 - 分割レイアウトを定義するために
SplitAttributesクラスを追加しました。 - 分割レイアウトをカスタマイズするために、
SplitControllerにSplitAttributes計算関数を追加しました。setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()SplitAttributesCalculatorAPI がデバイスでサポートされているかどうかを確認するisSplitAttributesCalculatorSupported()
EmbeddingRule#tagフィールドを追加しました。SplitRuleの API の更新:defaultSplitAttributesを追加しました。分割のデフォルトの分割レイアウトを定義します。splitRatioとlayoutDirectionを置き換えます。- XML プロパティ
splitRatioとsplitLayoutDirectionのdefaultSplitAttributesへの変換を追加しました。 - 最小サイズの定義を、ピクセルではなく密度非依存ピクセル(dp)を使用するように変更しました。
- デフォルト値 600dp の
minHeightDpを追加しました。 minWidthをminWidthDpに変更し、デフォルト値を 600dp にしました。minSmallestWidthをminSmallestWidthDpに変更し、デフォルト値を 600dp にしました。- デフォルト値
ALWAYS_ALLOWを持つmaxAspectRatioInHorizontalを追加しました。 - デフォルト値 1.4 の
maxAspectRatioInPortraitを追加しました。 - 終了動作定数を置き換えるために
FinishBehaviorネストされたクラスを定義しました。 SplitPairRuleとSplitPlaceholderRuleの Builder ネストクラスにプロパティの変更を適用しました。
- 分割に関する追加情報を提供するため、
SplitInfo#getSplitRatio()をSplitInfo#getSplitAttributes()に置き換えました。
WindowLayout
WindowInfoTrackerに試験運用版のアクティビティ以外の UI コンテキストのサポートを追加しました。WindowMetricsCalculatorに試験運用版のアクティビティ以外の UI コンテキストを追加しました。
移行手順
- アクティビティの埋め込みを有効にしてアクティビティを分割表示するには、アプリはマニフェストの
<application>タグにPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDプロパティを追加する必要があります。xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />これにより、システムはアプリの分割動作を事前に最適化できます。 SplitInfo比率- 現在の分割がスタックされているかどうかを確認します。
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - 現在の比率を確認します。
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- 現在の分割がスタックされているかどうかを確認します。
- SplitController の移行:
SplitController.getInstance()をSplitController.getInstance(Context)に変更します。SplitController.initialize(Context, @ResId int)をRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))に変更します。SplitController.getInstance().isActivityEmbedded(Activity)をActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)に変更します。SplitController.getInstance().registerRule(rule)をRuleController.getInstance(Context).addRule(rule)に変更します。SplitController.getInstance().unregisterRule(rule)をRuleController.getInstance(Context).removeRule(rule)に変更します。SplitController.getInstance().clearRegisteredRules()をRuleController.getInstance(Context).clearRules()に変更します。SplitController.getInstance().getSplitRules()をRuleController.getInstance(Context).getRules()に変更します。
SplitRuleプロパティの移行:minWidthとminSmallestWidthで、ピクセルではなく dp 単位が使用されるようになりました。アプリは次の呼び出しを使用できます。kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )または、単にminWithをピクセル単位でdisplayMetrics#densityで割ることもできます。
- 終了動作定数は
FinishBehavior列挙型のようなクラス定数に移行する必要があります。FINISH_NEVERをFinishBehavior.NEVERに変更します。FINISH_ALWAYSをFinishBehavior.ALWAYSに変更します。FINISH_ADJACENTをFinishBehavior.ADJACENTに変更します。
- レイアウトの方向は
SplitAttributes.LayoutDirectionに移行する必要があります。ltrをSplitAttributes.LayoutDirection.LEFT_TO_RIGHTに変更します。rtlをSplitAttributes.LayoutDirection.RIGHT_TO_LEFTに変更します。localeをSplitAttributes.LayoutDirection.LOCALEに変更します。splitRatioはSplitAttributes.SplitType.ratio(splitRatio)に移行する必要があります。
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)をkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.に変更setLayoutDirection(layoutDirection)とsetSplitRatio(ratio)をkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )に変更setFinishPrimaryWithSecondaryとsetFinishSecondaryWithPrimaryはFinishBehavior列挙型のような定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)を使用して、縦向きのデバイスで分割を表示します。
SplitPlaceholder.Buildermigrations:filtersパラメータとplaceholderIntentパラメータのみが含まれています。その他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。setFinishPrimaryWithPlaceholderはFinishBehavior列挙型定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。setLayoutDirection(layoutDirection)とsetSplitRatio(ratio)が次のように変更されます。kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)を使用して、縦向きのデバイスで分割を表示します。
バージョン 1.1.0-rc01
2023 年 5 月 10 日
androidx.window:window-*:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。
新機能
ActivityEmbeddingを安定版 API としてリリースします。- 各種バグを修正しました。
バージョン 1.1.0-beta02
2023 年 4 月 5 日
androidx.window:window-*:1.1.0-beta02 がリリースされました。バージョン 1.1.0-beta02 に含まれる commit については、こちらをご覧ください。
新機能
- 内部の修正とクリーンアップ。
バージョン 1.1.0-beta01
2023 年 3 月 22 日
androidx.window:window-*:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
アクティビティの埋め込み
- アプリ マニフェストの
<application>タグのブール値プロパティとしてPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDを追加しました。 - 分割機能を利用できない理由に関する詳細情報を提供するため、
isSplitSupportedを非推奨とし、splitSupportStatusに置き換えました。 splitSupportStatusプロパティの状態定数を提供するために、SplitController.SplitSupportStatusネストされたクラスを追加しました。SplitControllerを複数のモジュールにリファクタリングしました。ActivityまたはActivityStack関連 API のActivityEmbeddingControllerモジュール。isActivityEmbeddedをSplitControllerからActivityEmbeddingControllerに移動しました。EmbeddingRule関連のオペレーション用のRuleControllerモジュール:SplitControllerAPI を削除しました。clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
RuleControllerAPI を追加しました。addRule()- ルールを追加するか、同じタグを持つルールを更新します。removeRule()- 登録済みルールのコレクションからルールを削除します。setRules()- ルールのコレクションを確立します。clearRules()- 登録されているすべてのルールを削除します。- `parseRules()` - XML ルール定義からルールを解析します。
- すべてのモジュールでは、
#getInstance()メソッドで初期化されるコンテキストが必要です。以下に例を示します。ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- 表示のアスペクト比に関連する列挙型のような動作定数を定義する
EmbeddingAspectRatioクラスを追加しました。 - 分割レイアウトを定義するために
SplitAttributesクラスを追加しました。 - 分割レイアウトをカスタマイズするために、
SplitControllerにSplitAttributes計算関数を追加しました。setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported(): SplitAttributesCalculator API がデバイスでサポートされているかどうかを確認します。
EmbeddingRule#tagフィールドを追加しました。SplitRuleの API の更新:defaultSplitAttributesを追加しました。分割のデフォルトの分割レイアウトを定義します。splitRatioとlayoutDirectionを置き換えます。- XML プロパティ
splitRatioとsplitLayoutDirectionのdefaultSplitAttributesへの変換を追加しました。 - 最小サイズの定義を、ピクセルではなく密度非依存ピクセル(dp)を使用するように変更しました。
- デフォルト値 600dp の
minHeightDpを追加しました。 minWidthをminWidthDpに変更し、デフォルト値を 600dp にしました。minSmallestWidthをminSmallestWidthDpに変更し、デフォルト値を 600dp にしました。- デフォルト値
ALWAYS_ALLOWを持つmaxAspectRatioInHorizontalを追加しました。 - デフォルト値
1.4を持つmaxAspectRatioInPortraitを追加しました。 - 終了動作定数を置き換えるために
FinishBehaviorネストされたクラスを定義しました。 SplitPairRuleとSplitPlaceholderRuleのBuilderネストクラスにプロパティの変更を適用しました。
- 分割に関する追加情報を提供するため、
SplitInfo#getSplitRatio()をSplitInfo#getSplitAttributes()に置き換えました。
WindowLayout
- アクティビティ以外の UI コンテキストのサポートを
WindowInfoTrackerに追加しました。 WindowMetricsCalculatorにアクティビティ以外の UI コンテキストを追加しました。
移行手順
- アクティビティの埋め込みを有効にしてアクティビティを分割表示するには、アプリはマニフェストの
<application>タグにPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDプロパティを追加する必要があります。xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />これにより、システムはアプリの分割動作を事前に最適化できます。 SplitInfo比率- 現在の分割がスタックされているかどうかを確認します。
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - 現在の比率を確認します。
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- 現在の分割がスタックされているかどうかを確認します。
SplitControllermigrations:SplitController.getInstance()をSplitController.getInstance(Context)に変更します。SplitController.initialize(Context, @ResId int)がRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))に変更されます。SplitController.getInstance().isActivityEmbedded(Activity)をActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)に変更します。SplitController.getInstance().registerRule(rule)をRuleController.getInstance(Context).addRule(rule)に変更します。SplitController.getInstance().unregisterRule(rule)をRuleController.getInstance(Context).removeRule(rule)に変更します。SplitController.getInstance().clearRegisteredRules()をRuleController.getInstance(Context).clearRules()に変更します。SplitController.getInstance().getSplitRules()をRuleController.getInstance(Context).getRules()に変更します。
SplitRuleプロパティの移行:minWidthとminSmallestWidthで、ピクセルではなく dp 単位が使用されるようになりました。アプリは次の呼び出しを使用できます。kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )または、単にminWithをピクセル単位でdisplayMetrics#densityで割ることもできます。
- 終了動作定数は
FinishBehavior列挙型のようなクラス定数に移行する必要があります。FINISH_NEVERをFinishBehavior.NEVERに変更します。FINISH_ALWAYSをFinishBehavior.ALWAYSに変更します。FINISH_ADJACENTをFinishBehavior.ADJACENTに変更します。
- レイアウトの方向は
SplitAttributes.LayoutDirectionに移行する必要があります。ltrをSplitAttributes.LayoutDirection.LEFT_TO_RIGHTに変更します。rtlをSplitAttributes.LayoutDirection.RIGHT_TO_LEFTに変更します。localeをSplitAttributes.LayoutDirection.LOCALEに変更します。splitRatioはSplitAttributes.SplitType.ratio(splitRatio)に移行する必要があります。
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)をkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.に変更setLayoutDirection(layoutDirection)とsetSplitRatio(ratio)がkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )に変更されますsetFinishPrimaryWithSecondaryとsetFinishSecondaryWithPrimaryはFinishBehavior列挙型のような定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)を使用して、縦向きのデバイスで分割を表示します。
SplitPlaceholder.Buildermigrations:filtersパラメータとplaceholderIntentパラメータのみが含まれています。その他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。setFinishPrimaryWithPlaceholderはFinishBehavior列挙型定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。setLayoutDirection(layoutDirection)とsetSplitRatio(ratio)が次のように変更されます。kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)を使用して、縦向きのデバイスで分割を表示します。
バージョン 1.1.0-alpha06
2023 年 2 月 22 日
androidx.window:window-*:1.1.0-alpha06 がリリースされました。バージョン 1.1.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- UI コンテキストから
WindowLayoutInfoを取得する試験運用版を公開しました。
API の変更
- アクティビティの埋め込みが利用可能かどうかを示す
splitSupportStatusを追加しました。(I10024) - UI Context
WindowLayoutInfoAPI を試験運用版にしました。(I58ee0) RearDisplayモードを有効にするためのWindowAreaControllerと API を導入しました。このモードは、現在のウィンドウを背面カメラに合わせたディスプレイに移動する際に使用します。(Iffcbf)- デフォルトの背景色を更新しました。(I1ac1b)
SplitAttributesパラメータを追加しました。(I18bdd)SplitRule、SplitAttributes、SplitAttributesCalculatorの API を追加しました。(I92d23)maxAspectRatioに関する API を改善しました。alwaysAllow()とalwaysDisallow()をALWAYS_ALLOWとALWAYS_DISALLOWに置き換えました。- @see の API ドキュメントを独立したドキュメントとして更新しました。(I3057b)
- 以下のコンストラクタは、アプリによって呼び出されるものではないため、公開 API から削除されました。
SplitInfoコンストラクタActivityStackコンストラクタ(Ide534)
SplitRuleがmaxAspectRatioInPortrait/Landscapeを受け取るようになりました。親境界のアスペクト比がリクエストされたmaxAspectRatio以下の場合にのみ、アクティビティを分割できます。(Ia5990)RuleController#parseRulesを静的に変更しました。(I785df)- ActivityEmbedding に関する API を改善しました。
- API 命名規則の調整 - 次のインスタンスについては add / remove を使用します
registerRuleをaddRuleに変更unregisterRuleをremoveRuleに変更ActivityRuleは分割ルールではないため、getSplitRulesをgetRulesに置き換えました- 多数のルールを設定できる
RuleController#setRulesを追加しました SplitControllerのルール関連の API がシングルトンRuleControllerに抽出されます。該当する API は次のとおりです。addRuleremoveRulegetRulessetRulesclearRulesparseRulesSplitControllerの#isActivityEmbeddedがシングルトンActivityEmbeddingControllerに抽出されます。該当する API は次のとおりです。isActivityEmbeddedSplitController#initializeを削除しました。XML ファイルからルールを設定するには、RuleController#parseRulesと#setRulesを使用してください。変更前:SplitController.initialize(context, R.xml.static_rules)変更後:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)- 静的ルールとランタイム ルールが区別されなくなりました。つまり、
#clearRulesを呼び出すと、静的 XML ルールの定義に登録されているか実行時かどうかにかかわらず、すべてのルールがクリアされます。SplitController#clearRegisteredRulesの従来の動作を利用するには、XML リソース ID を指定してRuleController#parseRulesを呼び出し、RuleController#setRulesを呼び出してルールを再度設定してください。 変更前:SplitController.getInstance(context).clearRegisteredRules()変更後:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- SplitRule API を改善しました。
- 最小サイズは、
SplitRuleのピクセルではなく DP で指定します。 - 最小サイズをオプションとして受け取るように
SplitRuleBuilder をリファクタリングしました。(I95f17)
- 最小サイズは、
SplitControllerを初期化するためにコンテキストを渡すようにしました。(I42549)SplitRule#layoutDirの名前を#layoutDirectionに、SplitRule Builder#setLayoutDirの名前をBuilder#setLayoutDirectionに変更しました。(I3f6d1)
バージョン 1.1.0-alpha04
2022 年 11 月 9 日
androidx.window:window-*:1.1.0-alpha04 がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
ActivityEmbeddingのActivityStackが空かどうかを判断するためのメソッドを公開しました。ActivityEmbeddingAPI から試験運用版 API タグを削除しました。- 構築には
Builderがおすすめの方法であるため、ActivityRuleコンストラクタを非表示にしました。 WindowMetricsでWindowInsetsを取得する試験運用版のメソッドを追加しました。- プレースホルダが終了しないように
SplitPlaceholderFinishBehaviorを更新しました。プレースホルダが終了すると、混乱を招く動作が発生していました。
API の変更
- val
isEmptyを一般公開しました。これは funisEmptyを置き換わるものです。 ActivityStackパラメータのアクティビティの名前をactivitiesInProcessに変更しました。(Ia5055)ActivityFilter#matchesClassNameとActivityFilter#matchesClassNameOrWildCardは混乱を招くため、削除しました。- 呼び出し元がさまざまなフィルタを区別できるように、
ActivityFilter#componentNameとActivityFilter#intentActionを追加しました。(I41f22) - 試験運用版 API から
@DeprecatedAPI を削除しました。(I216b3) - アクティビティ埋め込み API の
@ExperimentalWindowApiを削除しました。(I69ebe) ActivityRuleコンストラクタを非表示にしました。代わりに Builder を使用してください。(If4eb6)- アクティビティが
ActivityFilterに含まれているかどうかを確認する API を追加しました。(Ia43cf) WindowMetricsクラスとWindowMetricsCalculatorCompatクラスの変更を反映するように API ファイルを更新しました。(I667fe)ActivityEmbeddingプロパティの Javadoc とクラス名を更新しました。(Ia1386)- AndroidManifest.xml で使用する
ActivityEmbeddingプロパティ タグ名を追加しました。(Id1ad4) - 新しい API
SplitPlaceholderFinishBehaviorとSplitPlaceholderRule.finishPrimaryWithPlaceholderを追加しました。これは、プレースホルダのアクティビティが終了するタイミング、およびアクティビティの埋め込みにおける関連するアクティビティの動作を定義する既存のSplitPlaceholderRule.finishPrimaryWithSecondaryに代わるものです。(I64647)
バグの修正
RearDisplayモードを有効にするためのWindowAreaControllerと API を導入しました。このモードは、現在のウィンドウを背面カメラに合わせたディスプレイに移動する際に使用します。(I388ab)
バージョン 1.1.0-alpha03
2022 年 7 月 27 日
androidx.window:window-*:1.1.0-alpha03 がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- 埋め込みルールのデフォルト値を更新しました。
API の変更
- 埋め込みルール プロパティのデフォルト値を更新しました。(Ic4d35)
バージョン 1.1.0-alpha02
2022 年 5 月 11 日
androidx.window:window-*:1.1.0-alpha02 がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- Java と RxJava をサポートするためのアダプタ ライブラリをリリースします。
バージョン 1.1.0-alpha01
2022 年 5 月 11 日
androidx.window:window-*:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- Java と RxJava をサポートするためのアダプタをリリースします。
バージョン 1.1.0-alpha01
2022 年 4 月 20 日
androidx.window:window:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- アプリがバックグラウンド処理に移行すると折りたたみ機能の出力が停止するバグを修正しました。
- 試験運用版の ActivityEmbedding API を拡張しました。
API の変更
- アクティビティが埋め込まれているかどうかを確認する公開 API。(I39eb7)
バグの修正
バージョン 1.0
バージョン 1.0.0
2022 年 1 月 26 日
androidx.window:window-*:1.0.0 がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください。
1.0.0 の主な機能
WindowInfoTrackerとFoldingFeatureにより折りたたみ式スマートフォンをサポートします。WindowMetricsCalculatorは現在の WindowMetrics の計算に役立ちます。
バージョン 1.0.0-rc01
2021 年 12 月 15 日
androidx.window:window-*:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
新機能
WindowInfoTrackerによる折りたたみ式スマートフォンのサポートを追加しました。WindowMetricsの現在値と最大値を計算するメソッドを追加しました。- サポート用のテスト API を追加しました。
バージョン 1.0.0-beta04
2021 年 11 月 17 日
androidx.window:window-*:1.0.0-beta04 がリリースされました。バージョン 1.0.0-beta04 に含まれる commit については、こちらをご覧ください。
新機能
- WindowInfoRepository の名前を WindowInfoTracker に変更しました。
- Activity を WindowInfoTracker の明示的なメソッド依存関係にします。
- Robolectric を使用するデベロッパーをサポートするために、WindowMetricsCalculator に簡単な TestRule を追加しました。
API の変更
- 拡張機能の抽出(I25a5f)
- ActivityStack に isEmpty を追加しました(I5a4e6)
- WindowInfoRepository の名前を WindowInfoTracker に変更しました。
- java/rxjava/testing の依存関係を一致するように更新しました。(I0da63)
- 単純な WindowMetricsCalculator のテストルールを追加しました。(Ibacdb)
バージョン 1.0.0-beta03
2021 年 10 月 27 日
androidx.window:window-*:1.0.0-beta03 がリリースされました。バージョン 1.0.0-beta03 に含まれる commit については、こちらをご覧ください。
新機能
- 試験運用版のアクティビティ埋め込み API を追加しました。この最初のレイアウト バージョンでは、2 つのアクティビティを並べて表示できます。
API の変更
- currentWindowMetrics API は、正確に提供できないため削除しました。代わりに WindowMetricsCalculator を使用してください。(Icda5f)
- 拡張機能 API を更新しました。(Ica92b)
- アクティビティを埋め込んで親タスク ウィンドウ内に並べて表示できる新機能のインターフェースを追加しました。(I5711d)
- WindowMetrics と WindowLayoutInfo のコンストラクタを非表示にしました。代わりにテスト API を使用してください。(I5a1b5)
- 偽の WindowLayoutInfo オブジェクトを作成する API を追加しました。(I4a2fd)
バグの修正
- メモリリークを解決しました。(I3fc79、b/202989046)
バージョン 1.0.0-beta02
2021 年 9 月 1 日
androidx.window:window-*:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 に含まれる commit については、こちらをご覧ください。
新機能
- 試験運用版 API にアノテーションを付けるために、試験運用版アノテーションを追加します。(I9f1b6)
- Rect を受け入れるテスト用 FoldingFeature を作成するテストメソッドを追加します。これにより、実際の Activity ではなく Robolectric を使用する場合のテストが容易になります。(Id1cca)
バージョン 1.0.0-beta01
2021 年 8 月 18 日
androidx.window:window-*:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- 古い定数を削除し、
FoldingFeatureをインターフェースに変更しました。
API の変更
- 古い定数を削除し、FoldFeature をインターフェースに変更します。(I9a2d5)
バグの修正
Test Coreライブラリに依存するライブラリがバージョン1.4.0にアップグレードされました。Android プラットフォーム バージョン S で動作するようになります。(I88b72、b/189353863)
バージョン 1.0.0-alpha10
2021 年 8 月 4 日
androidx.window:window-*:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
- WindowInfoRepo の名前を WindowInfoRepository に変更し、対応するクラス / ファイルを調整します。
- 時間の経過とともに値が変化するため、現在のウィンドウ指標を WindowInfoRepository の Flow に変換します。
- WindowInfoRepoJavaAdapter の名前を WindowInfoRepoCallbackAdapter に変更します。
- テスト用の FoldingFeature オブジェクトを作成するヘルパー メソッドを追加します。
- パッケージを更新し、クラスがサポートする機能に基づいてクラスをグループ化します。
API の変更
- ActivityExt の名前を ActivityExtensions に変更し、Repo を Repository に変更します。(I61a16)
- クラスのパッケージを更新します。(I23ae2)
- WindowInfoRepo から WindowMetrics を削除します。(I24663)
- WindowManager を削除し、WindowInfoRepo を使用します。
- WindowBackend を内部化します。(I06d9a)
- ウィンドウ指標を Flow に変換します。
- Java アダプタの名前を WindowInfoRepoCallbackAdapter に変更します。
- callbackFlow を削除します。したがって、今後は試験運用版 API を使用しません。(Ia4d15)
- テスト表示機能を作成するヘルパー メソッドを追加します。
- occlusionMode を occlusionType に変更します。(If4cff)
バグの修正
- core ライブラリが削除される ProGuard エラーを修正しました。
- WindowLayoutInfo が追加のサブスクライバーに配信されないエラーを修正しました。
- 構成を変更しても折りたたみ機能の更新がトリガーされないエラーを修正しました。
バージョン 1.0.0-alpha09
2021 年 6 月 30 日
androidx.window:window-*:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
新機能
- 整数の定数を制限なしの列挙型に変更します。
- テスト用の折りたたみ機能を作成するためのテスト ユーティリティを追加します。
API の変更
- テスト表示機能を作成するヘルパー メソッドを追加します。(I3cf54)
occlusionModeをocclusionTypeに変更します。
バグの修正
- データ ストリームの複数のコンシューマを追加する際に、初期値を出力します。
バージョン 1.0.0-alpha08
2021 年 6 月 16 日
androidx.window:window-*:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
新機能
- WindowInfoRepository を使用する場合のテストを容易にするため、テスト アーティファクトをリリースしました。WindowInfoRepository を使用して、DisplayFeatures と WindowMetrics に関する情報を取得できます。(I57f66、Ida620)
バージョン 1.0.0-alpha07
2021 年 6 月 2 日
androidx.window:window-*:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
- ウィンドウ ライブラリのコアを Kotlin に移行します。今後は、コルーチンと suspend 関数を使用して非同期データを公開します。
- WindowLayoutInfo のストリームと WindowMetrics を取得するための主要な接点として WindowInfoRepo を追加します。
- コールバックの登録と登録解除を行う Java 対応 API を公開する
window-javaアーティファクトを導入しました。 - RxJava に対応させた API を公開するアーティファクト
window-rxjava2、window-rxjava3を導入しました。
API の変更
- 依存関係を全体に提供する
WindowServicesを追加しました。- ウィンドウ レイアウト情報を消費するコルーチン ベースの API を追加しました。(Iab70f)
- ウィンドウ マネージャー ライブラリのコアを Kotlin に移行しました。(Icca34)
バグの修正
- 形状の境界を表すデータクラスを追加しました。(I6dcd1)
バージョン 1.0.0-alpha06
2021 年 5 月 5 日
androidx.window:window:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- Google は Kotlin への移行を開始しており、次のリリースで完了する予定です。
- DeviceState が公開 API から削除されました。代わりに FoldingFeature を使用してください。
- 現時点で
STATE_FLIPPEDはいかなるユースケースでもサポートされていないため、FoldingFeature の状態から削除しました。 - サポートが終了した他の API も削除しました。
API の変更
- Kotlin を依存関係として追加しました。
- コアライブラリを Kotlin に移行しました。(Idd995)
DisplayFeatureビルダーを削除しました。(I61fa4)- 公開 API から
DeviceStateを削除しました。代わりにFoldingFeatureを使用してください。(Id6079) - 拡張機能からデバイス状態のコールバックを削除しました。(I5ea83)
- FoldingFeature から
STATE_FLIPPEDを削除しました。(I9c4e1) - 非推奨となった登録メソッドを削除しました。(Ib381b)
バージョン 1.0.0-alpha05
2021 年 3 月 24 日
androidx.window:window:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
FoldingFeature に便利なメソッドを追加し、機能が分離しているかどうか、覆い隠しているかどうか、ヒンジの向きをアプリが判断できるようにしました。また、以下のために、ヒンジタイプを非表示にします。
WindowManager から同期読み取りメソッドを削除します。同期読み取りメソッドは、暗黙的な競合状態が生じるため、エラーが発生しやすくなります。WindowLayoutInfo のアップデートを受け取るため、リスナーとコールバックを登録します。
API の変更
バージョン 1.0.0-alpha04
2021 年 3 月 10 日
androidx.window:window:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- OEM が実装されていない場合、WindowLayoutInfo が出力されないバグを修正しました。ここでは空の WIndowLayoutInfo を出力するようにします。
- アプリがバックグラウンドで動作しているときにヒンジ状態が変わると、状態が正しく更新されないバグを修正しました。この状態は統一されるようになります。
- ランタイム依存関係からの警告を無視するように、ProGuard ファイルを更新しました。
バグの修正
- OEM ライブラリがない場合は、空の値を出力します。(Ide935)
バージョン 1.0.0-alpha03
2021 年 2 月 18 日
androidx.window:window:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- OEM の実装が空の場合は、WindowLayoutInfo に空の値を出力します。これにより、より多くのデバイスでライブラリを簡単に使用できるようになります。ただし、API は非同期であるため、アプリで防御のためのコードを作成してタイムアウト後にデフォルト値を出力することをおすすめします。OEM の実装について Google はいかなる保証もいたしません。また、初期値が遅延する可能性もあります。
バグの修正
- OEM ライブラリがない場合は、空の値を出力します。(Ide935)
バージョン 1.0.0-alpha02
2021 年 1 月 27 日
androidx.window:window:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
API を合理化して誤りを減らすために、いくつかの API のサポートを終了しました。重要な変更の 1 つは、WindowManager から同期読み取りオペレーションを削除して DeviceState のサポートを終了したことです。同期読み取りオペレーションは競合状態を引き起こし、正しく UI が表示されない原因になることがあります。
DisplayFeature は、他の機能で今後実装されるインターフェースに移行されました。最初に提供される機能は FoldingFeature で、これは画面の折りたたみまたはヒンジを表現します。これには、DeviceState に取って代わるヒンジの状態も含まれます。
WindowMetrics は Android 11 で導入されましたが、その目的は、デベロッパーがウィンドウに関する指標(ウィンドウの画面上の位置とサイズ、システム インセットなど)を簡単にクエリできるようにすることでした。このリリースでは、デベロッパーが WindowMetrics を利用して古い Android バージョンのサポートを継続できるように、API をバックポートしました。WindowMetrics は、
WindowManager#getCurrentWindowMetrics()API および WindowManager#getMaximumWindowMetrics() API で取得できます。
API の変更
- 次のアルファ版で削除される API のサポートを終了しました(Ib7cc4)
ExtensionInterfaceを更新して明示的なアクティビティ参照を受け入れるようにしました。(I07ded)- WindowMetrics API を導入しました。(I3ccee)
- WindowManager から同期読み取りメソッドを削除しました(I69983)
- ExtensionWindowBackend パッケージが保護されるようにしました。(Ied208)
バグの修正
- 視覚的コンテキストを受け入れるように
ExtensionInterfaceAPI を更新しました。(I8e827)
外部からの協力
- DeviceState と WindowLayoutInfo を結合して、データに簡単にアクセスできるようにしました。(Id34f4)
バージョン 1.0.0-alpha01
2020 年 2 月 27 日
androidx.window:window:1.0.0-alpha01 と androidx.window:window-extensions:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
これは、Window Manager ライブラリの最初のリリースです。
新機能
DisplayFeature: この新しい API は、連続する平坦な画面サーフェスが蝶番や折りたたみの部分で途切れた状態を識別します。DeviceState: この新しい API は、スマートフォンの定義済みの物理状態(CLOSED、OPENED、HALF_OPENEDなど)のリストの中から現在の物理状態を提供します。