场景自适应(AdaptiveExperience)使用指导
场景自适应组件 - 鸿蒙场景感知助手,用于响应式布局、导航和流程设计。 鸿蒙独有组件,根据设备场景给出推荐列数、导航模式和场景档位。
运行前提与搭建步骤
这些案例在包含该组件的鸿蒙 AI 伴侣或 HAP 中运行。Android 侧是供网页编辑器生成积木的声明,不能用安卓伴侣验证鸿蒙系统能力。
- 在设计器拖入
AdaptiveExperience,保留名称AdaptiveExperience1;拖入案例涉及的按钮、文本输入框以及一个标签标签1,按代码中的名称重命名。 - 根据下面的业务说明准备素材、JSON 或系统目标。案例中的按钮代表分步操作,先等初始化、加载或创建成功,再执行下一步。
- 接住完成事件与错误事件,将原始 JSON 或错误显示在标签。先确认原始结果,再编写业务处理。
改变窗口大小后刷新场景,推荐值仅供布局决策;组件不会替你移动已有组件。
案例一:读取当前场景
各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。
when Screen1.Initialize() {
AdaptiveExperience1.RefreshScene()
标签1.Text = AdaptiveExperience1.GetSceneJson()
}
案例二:选择响应式文字
when 按钮1.Click() {
标签1.Text = AdaptiveExperience1.BuildResponsiveValue("手机单列", "中屏双列", "大屏多列")
}
when AdaptiveExperience1.SceneChanged(场景JSON) {
标签1.Text = 场景JSON
}
参数与返回值速查
JSON 参数是文本,不能直接传字典;需要字典时可用 Web 客户端的 JSON 解码积木转换返回文本。完整默认值与类型见组件参考。
| 方法或事件 | 参数与用途 |
|---|---|
构建响应式值(紧凑值,中等值,展开值)(BuildResponsiveValue) |
紧凑值:文本, 中等值:文本, 展开值:文本。根据场景档位,在 compact、medium、expanded 三组值中选择结果。 |
获取推荐列数(GetRecommendedColumns) |
无参数。获取当前场景推荐的网格列数。 |
获取推荐导航(GetRecommendedNavigation) |
无参数。获取当前场景推荐的导航模式。 |
获取场景JSON(GetSceneJson) |
无参数。以 JSON 形式获取完整的当前场景快照。 |
获取场景档位(GetSceneProfile) |
无参数。获取当前场景档位。 |
刷新场景(RefreshScene) |
无参数。刷新当前场景快照,并在变化时触发 SceneChanged。 |
场景变化时(场景JSON)(SceneChanged) |
场景JSON:文本。刷新后场景档位发生变化时触发。 |
常见问题与验收
| 现象 | 检查与预期 |
|---|---|
| 安卓运行没有结果 | 切换到鸿蒙伴侣或 HAP;Android 的声明不会执行该鸿蒙系统能力。 |
| 方法已调用但界面没变化 | 生成 JSON 的方法只是构建数据;按业务流程交给渲染、启动或同步入口,不能将数据生成当成系统操作完成。 |
| 初始化、权限或设备失败 | 记录错误事件,确认系统服务、授权、目标应用或设备可用;只在成功事件后继续下一步。 |
| JSON 解析失败 | 使用上一组件的原始输出,检查引号和字段类型;空对象用于默认模板演示,不能代替真实目标信息。 |
| 两个案例验收 | 每个按钮单独操作一次,核对对应返回或事件;输入错误目标或取消操作时查看失败事件,不应显示成功提示。 |
完整 .aia 源码与操作指导
鸿蒙设备仪表盘:根据当前真实手机、横屏或大屏场景调整三张卡片高度,并展示推荐列数、导航和原始JSON。卡片文字仅是本地界面示例,没有连接传感器。Android接口为编辑器占位,APK编译通过不表示实现自适应。
导入 AdaptiveExperienceAllFeatures.aia,连接最新伴侣,或编译独立安装包。真机/伴侣运行尚未实测。
| API / 功能 | 操作入口 | 预期结果 |
|---|---|---|
| RefreshScene、GetSceneJson、SceneChanged | 初始化、手动刷新、自动轮询后旋转或调整窗口 | 展示真实JSON;仅实际变化触发事件,相同场景不会伪造事件 |
| SceneProfile、CurrentDeviceType、RecommendedColumns、RecommendedNavigation | 场景/推荐区 | 属性读取实际设备档位与推荐值 |
| GetSceneProfile、GetRecommendedColumns、GetRecommendedNavigation | 同一区域的方法值 | 与当前实际快照对应;刷新时只读真实值 |
| BuildResponsiveValue | 三卡片真实高度和响应说明 | compact高120、medium高160、expanded高200,选择根据真实设备场景 |
| 平台、空值与恢复 | 鸿蒙运行;Android运行;取消自动轮询再手动刷新 | 鸿蒙有效;Android为空时明确说明接口占位,不显示虚构场景 |
所有返回值均用于界面反馈,错误由底部错误区展示。设计器采用明确非默认配置,初始化与界面同步。API 覆盖检查按最终 AIA 检查方法、事件、属性读取与设置及设计器配置,不能替代真实设备验证。
设备场景自适应
导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 鸿蒙设备仪表盘:根据当前真实手机、横屏或大屏场景调整三张卡片高度,并展示推荐列数、导航和原始JSON。卡片文字仅是本地界面示例,没有连接传感器。Android接口为编辑器占位,APK编译通过不表示实现自适应。 覆盖检查 11/11。首次载入及保存重开均0个错误,真实后台导入、安装包编译通过;真机/伴侣/硬件联调尚未实测。全部属性读写、方法与事件的操作入口和预期结果见组件指导。
扫码添加客服咨询