實作抬頭通知面板

在 Android 17 以上版本中,可調整式 UI 適用於即時通知 (HUN),您可以使用可調整式 UI 架構和執行階段資源疊加 (RRO),自訂 HUN 面板的視窗管理 (定位、背景遮罩、動畫)。這項功能可控制通知的容器,不會影響內部內容的算繪作業。

導入作業

為 HUN 實作可擴充的 UI 包含下列步驟:

  • 公開和系統 API:在可擴充的 UI 剖析器中,導入 HunWindow 類別和 <HunPanel> XML 標記剖析邏輯。
  • 合作夥伴實作:
    • 定義自訂 RRO 疊加層。
    • 如要建立 XML 檔案 (例如 res/xml/hun_panel.xml),請使用 <HunPanel> 根標記。
    • 定義 <Variant> 元素,用來控制邊界、重心 (TOPBOTTOM)、可見度和背景 (遮罩可繪項目)。
    • 使用 <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 出現在指定的重力 (TOPBOTTOM) 和界限。
  • 互動:確認滑動即可關閉 (如無法關閉,請確認按鈕是否正常運作)。
  • 動畫:確認開啟和關閉狀態之間的轉場動畫。