在 Android 17 及更高版本中,浮动通知 (HUN) 的可伸缩界面可让您使用可伸缩界面框架和运行时资源叠加层 (RRO) 自定义 HUN 面板的窗口管理(定位、背景遮罩、动画)。借助此功能,您可以控制通知的容器,而不会影响内部内容呈现。
实现
实现 HUN 的可伸缩界面涉及以下内容:
- 公共 API 和系统 API: 在可伸缩界面解析器中引入
HunWindow类和<HunPanel>XML 标记解析逻辑。 - 合作伙伴实现:
- 定义自定义 RRO 叠加层。
- 如需创建 XML 文件(例如
res/xml/hun_panel.xml),请使用<HunPanel>根标记。 - 定义
<Variant>元素以控制边界、重力(TOP或BOTTOM)、可见性和背景(遮罩可绘制对象)。 - 使用
<Transitions>将变体映射到系统事件(例如_System_Show_Panel)。
- 新设备与升级设备: 这是由 RRO 进行的配置更改。如需升级设备以接收新的系统映像,请创建适当的 RRO 以定义 HUN 行为。这样,用户就可以偏离默认设置。
- 启用或停用: 如需启用或停用此功能,请在
window_states配置中添加或移除@xml/hun_panel。 - 默认设置: 应用您自己的 RRO(该 RRO 会替换系统默认配置)来更改默认设置。
要求和验证
请按以下顺序测试启用和停用叠加层:
adb shell cmd overlay disable --user current com.example.overlay.scalableUI.hun.bottom
如果您启用或停用 RRO,HUN 将分别显示在底部或顶部。
手动验证
- 定位: 验证 HUN 是否显示在指定的重力(
TOP或BOTTOM)和边界处。 - 互动: 验证滑动以关闭是否有效(如果无法关闭,请验证按钮是否有效)。
- 动画: 验证打开和关闭状态之间的过渡动画。