使用可伸缩界面在汽车中打造复杂、动态且多面板的用户体验。可伸缩的界面:
提供灵活的窗口系统。
最大限度地降低了界面实现所带来的工程风险、成本和复杂性。
可伸缩界面支持各种需要动态窗口排列的现代车载信息娱乐 (IVI) 设计。
福利和合规性
可伸缩界面的优势包括:
降低测试风险:该框架已预先获得认证,并符合 CTS 要求,从而消除了在计划周期后期出现测试失败的主要风险。可扩缩的界面可节省数月的工程设计工作量,并加快合规流程。
设计灵活性更高:能够重现众多复杂的现有汽车窗口模型。可扩缩的界面支持大胆且高度差异化的设计。
降低了实现复杂性:抽象为高级的配置驱动型 XML 模型,降低了自定义窗口化逻辑的门槛。
性能更佳:可伸缩界面基于高性能的窗口化基础构建,与标准 Android 完全集成。过渡顺畅且可优化。
核心组成要素
可扩缩的界面可最大限度地减少对 OEM 特定代码的需求,简化更新流程,并通过消除陷阱和减少认证问题来降低发布风险。
这种 XML 驱动的方法可解决在 AAOS 中管理复杂窗口系统时遇到的常见挑战,例如与精确定位、Z 顺序冲突和应用焦点相关的问题。
可扩缩界面提供这些核心构建块。
面板
面板是屏幕上的基本矩形容器。每个面板都映射到一个专用的根任务,以便进行独立管理。面板可以托管应用任务 (TaskPanel
) 或基于视图的内容,例如 widget (DecorPanel
)。如需了解详情,请参阅配置面板。
变体
变体定义了面板的特定视觉状态,并包含 bounds
(位置和大小)、visibility
、layer
(Z 顺序)和 corner
半径等属性。单个面板可以有多种变体,例如 opened
、closed
或 minimized
。如需了解详情,请参阅使用变体设计视觉状态。
过渡
过渡定义了面板如何从当前状态 fromVariant
移动到新状态 toVariant
。过渡效果可由 Event
触发,并且可以定义面板在状态更改期间经历的动画。
面板应从当前状态移动到 toVariant
。对于同步,所有过渡都由核心窗口管理器进行动画处理和协调。
- 事件:用于触发界面更改。OEM 或系统可以预定义触发器。例如
_System_OnHomeEvent
、_System_TaskOpenEvent
或自定义导航按钮按压。
例如,可伸缩界面使用事件来触发过渡。这些过渡效果可将面板从一个变体动画化为另一个变体,以显示界面中的动态变化。这些更改会传达给其他系统应用,以便根据需要调整内容。通过在 XML 中定义界面关系,您可以:
指定复杂的界面行为:定义复杂的界面互动。
安排窗口系统:控制窗口位置和分层。
实现视觉主题:应用一致的品牌和美学风格。
降低代码复杂性:尽量减少对大量自定义代码开发的需求。
如需了解详情,请参阅配置过渡。
系统界面按钮
除了触发 intent 之外,CarSystemBarButtons
还可以在使用 event
、selectedEvent
和 unselectedEvent
属性点按时触发 ScalableUI 事件。
event
描述的是点按按钮时要触发的事件。如果需要更精细地控制事件,请使用 selectedEvent
和 unselectedEvent
属性分别指定在选中或取消选中按钮时触发的事件。
何时实现系统界面
本部分介绍了可伸缩界面的最佳使用方式。
创建持久性多面板布局
打造多可用区体验,让屏幕的不同区域永久专用于特定功能。例如,专用媒体控件、气候控制条或全屏地图。
TaskPanels
用于主要应用(例如导航),DecorPanels
用于必须放置在 TaskPanels
之间的视图形式的界面元素。
实现动态首页场景
实现一个由多个并发可见的交互式应用面板组成的主场景。例如,地图、媒体播放器和应用网格。
如需将所有相关面板过渡到其 opened
或 default
主页变体,请配置 _System_HomeEvent
。
应用情境叠加层
放置非应用界面元素,例如情境微件、自定义品牌信息和可与应用任务协调动画效果的拖动条。
对于所有纯装饰性元素或 widget 托管元素,请使用 DecorPanels
。如果 widget 托管的是可启动的完整应用,则 Panel
> TaskPanel
是最佳选择。当分层必须与 TaskPanel
分层同步时,请对基于视图的界面元素使用 DecorPanels
。
设计复杂的面板互动
设计高级用户驱动的操作,例如根据主显示屏内容动态调整应用面板大小或调整仪表盘视图。
定义自定义 Events
以触发特定的非系统标准 Transitions
。