Android 17 以降では、ヘッドアップ通知(HUN)のスケーラブル UI により、ランタイム リソース オーバーレイ(RRO)を備えたスケーラブル UI フレームワークを使用して、HUN パネルのウィンドウ管理(位置、背景スクリム、アニメーション)をカスタマイズできます。この機能を使用すると、内部コンテンツのレンダリングに影響を与えることなく、通知のコンテナを制御できます。
実装
HUN のスケーラブル UI の実装には、次の作業が含まれます。
- 公開 API とシステム API: スケーラブル UI パーサー内の
HunWindowクラスと<HunPanel>XML タグの解析ロジックを導入します。 - パートナーの実装:
- カスタム RRO オーバーレイを定義します。
- XML ファイル(
res/xml/hun_panel.xmlなど)を作成するには、<HunPanel>ルートタグを使用します。 - 境界、グラビティ(
TOPまたはBOTTOM)、可視性、背景(スクリム ドローアブル)を制御する<Variant>要素を定義します。 <Transitions>を使用して、バリエーションをシステム イベント(_System_Show_Panelなど)にマッピングします。
- 新しいデバイスとアップグレードされたデバイス: これは RRO によって行われる構成変更です。デバイスをアップグレードして新しいシステム イメージを受け取るには、適切な RRO を作成して HUN の動作を定義します。これにより、ユーザーはデフォルトから逸脱できます。
- 有効または無効にする: この機能を有効または無効にするには、
window_states構成から@xml/hun_panelを追加または削除します。 - デフォルト設定: システムのデフォルト構成をオーバーライドする独自の RRO を適用して、デフォルト設定を変更します。
要件と検証
オーバーレイの有効化と無効化をテストするには、次の手順を使用します。
adb shell cmd overlay disable --user current com.example.overlay.scalableUI.hun.bottom
RRO を有効または無効にすると、HUN はそれぞれ下部または上部に表示されます。
手動検証
- ポジショニング: HUN が指定されたグラビティ(
TOPまたはBOTTOM)と境界に表示されることを確認します。 - インタラクション: スワイプして閉じる機能が動作することを確認します(閉じることができない場合は、ボタンが動作することを確認します)。
- アニメーション: 開いた状態と閉じた状態の間の遷移アニメーションを確認します。