设备折展状态适配

SkillProductivity

Validate and route HarmonyOS foldable-device adaptation tasks (including bi-fold, multi-fold, and special-ratio form factors) through a declarative scene and resource index. Use when the task involves FoldStatus, hover layouts, crease avoidance, fold continuity, multi-fold state mapping (for example F/M/G), special-ratio inner/outer screen adaptation, or remediation of existing foldable-page issues.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 设备折展状态适配 skill

What this skill tells your AI

The instructions your AI receives, as published by openharmonyinsight/openharmony-skills in skills/harmonyos-ai-agent-skill/references/hmos-multidevice-fold-state/SKILL.md and read by ahel’s review.

技能定义

字段内容
skill_iddevice-fold-state
skill_name设备折展状态适配
one_line_purpose为折叠屏多形态设备提供悬停适配、折痕避让、开合连续性的统一基线。
device_scopefoldable / multi-fold / special-ratio-foldable
problem_scopeFoldStatus、悬停态、折痕避让、开合连续性、多段折叠形态映射(如 F/M/G)、内外屏比例差异适配、折展问题修复
not_in_scope普通手机或平板的常规响应式布局、与折展无关的纯视觉调整
primary_outputsprimary_scenedevice_constraintsimplementation_notesfix_planverification_matrix

核心约束

  • 先识别设备形态和当前折叠状态,再决定布局与交互策略。
  • 悬停态方向决策遵循“场景结构约束 > foldStatus 或 foldDisplayMode > 折痕几何推断”。
  • 对“固定折痕轴”设备(如固定竖折痕),允许用设备约束覆盖单次折痕矩形几何判定;当语义与几何冲突时,优先保证“上展示下操作”等场景语义。
  • 同一“折痕轴周期”内只锁定一次方向;当 foldStatus / foldDisplayMode / 折痕轴 发生变化时,必须先清锁再重选方向,避免沿用旧方向。
  • 折展适配不得改写原有业务显示状态机,不得在折展计算函数里强制写入业务显示态。
  • 悬停态与展开态应复用同一套显示判定条件,只调整内容落在哪个分屏。
  • 关键内容和核心交互不得落在折痕区域。
  • 折痕分屏必须先统一到同一坐标系(全局/页面二选一),再计算分界;禁止直接混用不同坐标系。
  • 折痕定位应优先使用“折痕上边界/下边界”作为分区边界;16 vp / 40 vp 仅用于内容安全间距,不作为分区锚点。
  • 开合后不得引入额外操作步骤,不得出现滚动偏移、输入丢失、图像模糊或播放进度漂移。
  • 未给出运行验证证据前,不得判定折展适配完成。

三块主线结构

模块主线固定为三块,先按主线归类,再进入场景细分:

主线官方条目主场景主资源
悬停适配4.3FOLD-02RSC_FOLD_03
折痕避让4.4FOLD-03RSC_FOLD_05
开合连续性4.1FOLD-07RSC_FOLD_17

说明:

  • FOLD-01FOLD-04FOLD-05FOLD-06 属于扩展场景,用于状态入口、多形态/特殊比例和问题修复。
  • 三块主线的总览入口是 RSC_FOLD_16./references/fold_adaptation_four_blocks.md)。

阶段标签

标签阶段当前模块关注点
REQ需求分析设计设备形态、折展状态、方向策略、显示职责
DEV开发状态监听、分屏布局、折痕计算、开合连续性、生命周期回收
FIX问题修复折展问题修复、方向偏差、状态不同步、折痕跨越、连续性断档
VAL功能验证foldStatus 证据、方向证据、折痕避让截图、连续性行为回归

统一输出字段

  • 路由字段:active_phasesprimary_phaseprimary_scenesecondary_scenesresources_used
  • REQdevice_constraintscapability_boundaryacceptance_focus
  • DEVcode_touchpointsreuse_resourcesimplementation_notesintegration_risks
  • FIXproblem_profileroot_cause_hypothesisfix_planregression_watchlist
  • VALverification_matrixevidence_requirementspass_criteriaresidual_risks

字段释义

  • device_constraints:指由设备折叠形态、折展状态、折痕区域和宽折叠特性带来的适配硬约束。在 device-fold-state 中,通常是需要支持哪些 fold status、折痕区域禁止承载哪些内容、悬停态是否允许重选方向。
  • capability_boundary:指当前折展方案适用于哪些设备形态和状态,哪些设备或状态不支持,或只能降级处理。
  • acceptance_focus:指需求阶段验收时必须确认的折展行为、方向结果、折痕避让和状态切换表现。
  • scene 中 deliverables.REQ 出现 device_constraints,表示“该折展场景命中后,需求分析必须先给出设备约束结论”,不是在场景层重新发明字段。

AI 检索要求

  • 涉及当前是折叠态、展开态还是半折叠态时,优先命中 FOLD-01
  • 涉及悬停态上下分屏、上展示下操作时,优先命中 FOLD-02
  • 涉及内容跨折痕、点击区落在折痕上时,优先命中 FOLD-03
  • 涉及“避让区偏下/偏上、分界线不在中线、状态栏导致整体偏移”时,优先联合命中 FOLD-03 + FOLD-06
  • 涉及折展后步骤增加、滚动偏移、输入丢失、图片模糊、播放进度不一致时,优先命中 FOLD-07
  • 涉及多段折叠形态映射(如 F/M/G)或内外屏比例差异适配时,优先命中 FOLD-04FOLD-05
  • 涉及折展行为偏差且需要通用修复路径时,优先命中 FOLD-06
  • 涉及“悬停态黑屏/仅剩 Blank、内容被整屏折痕吞掉”时,优先联合命中 FOLD-02 + FOLD-03 + FOLD-06
  • 涉及“物理竖折痕但 creaseRect 显示为横向宽条(如 2232x128)”时,优先联合命中 FOLD-02 + FOLD-06,并启用固定折痕轴判定策略。

F/M/G 简介

  • F:可视区较小的折叠形态(常用于保留核心内容)。
  • M:中间过渡形态(布局通常介于紧凑与扩展之间)。
  • G:可视区较大的展开形态(适合分栏或提升信息密度)。
  • 说明:F/M/G 是通用语义标签,最终布局仍以实时窗口尺寸与断点为准。

Workflow

Steps

  1. 根据 intent_signals / applies_when 命中主场景(primary_scene)和辅场景(secondary_scenes)。
  2. 按场景读取 resource_refsskill_to_path,优先加载 P0 官方路径。
  3. 依据“统一输出字段”生成阶段化结果(REQ/DEV/FIX/VAL)。
  4. 按“阶段输出契约”补齐必填字段并给出验证证据要求。

Output

  • 路由字段:active_phasesprimary_phaseprimary_scenesecondary_scenesresources_used
  • 阶段字段:按 REQ/DEV/FIX/VAL 契约输出对应结构化结果。

Checklist

  • 已命中至少一个 FOLD-* 场景,并说明命中依据。
  • 已优先使用 P0 官方资源,P1 模板资源仅用于加速落地。
  • 已输出当前阶段的所有必填字段(见“阶段输出契约”)。
  • 已包含折展验证证据要求与剩余风险声明。

场景索引

FOLD-01 折叠状态检测与状态切换响应
scene_id: FOLD-01
scene_name: 折叠状态检测与状态切换响应
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
  - FoldStatus
  - foldStatusChange
  - 展开态
  - 折叠态
  - 半折叠态
applies_when:
  - 需要识别折叠态、展开态、半折叠态
  - 当前问题表现为状态变化后界面未更新
not_applies_when:
  - 问题只涉及常规平板布局,没有折展状态输入
decisions:
  - 选择状态来源、监听点和刷新入口
  - 确定状态变化后的布局刷新和兜底行为
deliverables:
  REQ:
    - device_constraints
    - capability_boundary
    - acceptance_focus
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_01
  - RSC_FOLD_02
skill_to_path:
  - skill: 折叠状态检测
    path: ./references/fold_status_detection.md
FOLD-02 悬停态上下分屏与交互布局
scene_id: FOLD-02
scene_name: 悬停态上下分屏与交互布局
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
  - 悬停态
  - HALF_FOLDED
  - 上下分屏
  - 上展示下操作
applies_when:
  - 页面在悬停态需要将展示区和操作区拆到上下分屏
  - 当前问题表现为悬停态布局职责混乱
not_applies_when:
  - 页面没有悬停态交互设计
decisions:
  - 明确上半屏和下半屏的职责分配
  - 明确方向锁定策略和退出悬停后的恢复策略
deliverables:
  REQ:
    - device_constraints
    - capability_boundary
    - acceptance_focus
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_03
  - RSC_FOLD_04
skill_to_path:
  - skill: 悬停态上下分屏与交互
    path: ./references/hover_state_interaction.md
FOLD-03 折痕区域避让
scene_id: FOLD-03
scene_name: 折痕区域避让
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
  - 折痕
  - CreaseRegion
  - getFoldCreaseRegion
  - 内容被劈开
  - 避让区偏下
  - 分界线不在中线
  - 状态栏偏移
applies_when:
  - 关键内容或交互可能落在折痕区域
  - 状态变化后需要重新计算折痕避让范围
not_applies_when:
  - 设备没有折痕区域输入
decisions:
  - 确定折痕区域获取方式和重算时机
  - 决定哪些内容必须远离折痕
  - 先映射折痕矩形到页面坐标,再计算分界线,禁止未映射直接参与布局
  - 上分区下边界锚定折痕上边界,下分区上边界锚定折痕下边界
  - `16 vp / 40 vp` 仅作为分区内部内容安全间距,不替代边界定位
  - 若页面根节点有 `globalPosition` 偏移,必须在同单位下扣减后再分区
deliverables:
  REQ:
    - device_constraints
    - capability_boundary
    - acceptance_focus
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_05
  - RSC_FOLD_06
skill_to_path:
  - skill: 折痕区域避让
    path: ./references/crease_avoidance.md
FOLD-07 开合连续性保障
scene_id: FOLD-07
scene_name: 开合连续性保障
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
  - 开合连续性
  - 操作步骤增加
  - 页面滚动位置偏移
  - 输入内容丢失
  - 图片模糊
  - 播放进度不一致
applies_when:
  - 折叠/展开后出现状态断档,导致操作路径变长或体验降级
  - 需要保证滚动、输入、图像和媒体时间轴在折展后的连续性
not_applies_when:
  - 问题仅为静态布局差异,不涉及状态连续
decisions:
  - 明确哪些状态必须跨折展保持(滚动锚点、输入草稿、媒体时间轴)
  - 明确恢复链路触发时机,禁止基于过期视口恢复
  - 明确降级策略回收点,避免质量衰减累积
deliverables:
  REQ:
    - device_constraints
    - capability_boundary
    - acceptance_focus
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_17
  - RSC_FOLD_01
skill_to_path:
  - skill: 开合连续性
    path: ./references/fold_continuity.md
  - skill: 折叠状态检测
    path: ./references/fold_status_detection.md
FOLD-04 多段折叠形态状态适配
scene_id: FOLD-04
scene_name: 多段折叠形态状态适配
phase_tags: [REQ, DEV, FIX, VAL]
priority: P1
intent_signals:
  - 多段折叠
  - 多形态折展
  - F/M/G
  - 形态映射
applies_when:
  - 目标设备存在多段折叠形态差异(可映射为 F/M/G 等)
  - 当前问题表现为某一形态下方向或结构判断错误
not_applies_when:
  - 设备仅存在单一折展形态,无需形态映射
decisions:
  - 形态映射基线:可将不同设备形态抽象为“小可视区/中间态/大可视区”等统一语义(如 F/M/G)
  - 确定不同折叠组合下的布局和方向策略
  - 形态标签只作为语义入口,真实布局空间仍以运行时窗口尺寸和断点判定
  - 明确“大可视区形态”下的方向和信息密度策略
deliverables:
  REQ:
    - device_constraints
    - capability_boundary
    - acceptance_focus
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_07
  - RSC_FOLD_01
skill_to_path:
  - skill: 多段折叠形态状态适配
    path: ./references/multi_fold_states.md
  - skill: 折叠状态检测
    path: ./references/fold_status_detection.md
FOLD-05 特殊比例折叠屏适配(内外屏差异)
scene_id: FOLD-05
scene_name: 特殊比例折叠屏适配(内外屏差异)
phase_tags: [REQ, DEV, FIX, VAL]
priority: P1
intent_signals:
  - 特殊比例折叠屏
  - 1:1 外屏
  - 16:10 内屏
  - 内外屏比例差异
applies_when:
  - 目标设备存在明显的外屏和内屏比例差异
  - 需要处理宽折叠内容密度或导航形式变化
not_applies_when:
  - 设备不具备宽折叠屏幕特征
decisions:
  - 定义外屏与内屏的布局差异
  - 决定哪些内容在外屏裁剪、隐藏或延后展示
deliverables:
  REQ:
    - device_constraints
    - capability_boundary
    - acceptance_focus
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_08
  - RSC_FOLD_03
  - RSC_FOLD_09
  - RSC_FOLD_10
  - RSC_FOLD_11
  - RSC_FOLD_12
skill_to_path:
  - skill: 特殊比例折叠屏适配
    path: ./references/special_form_factor_foldable_adaptation.md
  - skill: 悬停态上下分屏与交互
    path: ./references/hover_state_interaction.md
FOLD-06 折展问题通用修复路径
scene_id: FOLD-06
scene_name: 折展问题通用修复路径
phase_tags: [DEV, FIX, VAL]
priority: P0
intent_signals:
  - 折展问题修复
  - 悬停态错乱
  - 方向偏差
  - 折痕跨越
  - 连续性断档
  - 生命周期回收
applies_when:
  - 已有页面在折展态出现行为偏差,需要修复但不重构页面架构
  - 需要按“问题描述-根因分析-通用修复方案”输出修复路径
not_applies_when:
  - 当前任务是新页面从零设计
decisions:
  - 先归类问题类型,再选对应通用修复模板,避免按页面类型定制
  - 修复顺序统一为:监听入口 -> 几何/状态 -> 布局/交互 -> 生命周期回收 -> 回归验证
  - 方向与分界线优先基于真实折痕几何,不使用经验比例硬编码
  - 出现“避让区偏下/偏上”时,先排查坐标系混用与“中线 + 固定偏移”策略,再排查布局容器约束
  - 禁止在折展修复中改写业务状态机语义
deliverables:
  DEV:
    - code_touchpoints
    - reuse_resources
    - implementation_notes
    - integration_risks
  FIX:
    - problem_profile
    - root_cause_hypothesis
    - fix_plan
    - regression_watchlist
  VAL:
    - verification_matrix
    - evidence_requirements
    - pass_criteria
    - residual_risks
resource_refs:
  - RSC_FOLD_01
  - RSC_FOLD_03
  - RSC_FOLD_05
  - RSC_FOLD_13
skill_to_path:
  - skill: 折叠状态检测
    path: ./references/fold_status_detection.md
  - skill: 悬停态上下分屏与交互
    path: ./references/hover_state_interaction.md
  - skill: 折痕区域避让
    path: ./references/crease_avoidance.md
  - skill: 折展问题修复场景库
    path: ./references/bug-fix-cases.md

资源索引

完整资源卡片已下沉至 ./references/resource-index.md,主文件仅保留检索入口与输出契约。

使用顺序:

  • 优先读取 P0 官方路径作为主方案。
  • P1 工程模板资源仅作补充,不能替代官方基线。

资源分组:

  • 官方主路径:RSC_FOLD_01RSC_FOLD_03RSC_FOLD_05RSC_FOLD_07RSC_FOLD_08RSC_FOLD_16RSC_FOLD_17
  • 官方 API 模板与问题修复资源:RSC_FOLD_02RSC_FOLD_04RSC_FOLD_06RSC_FOLD_09RSC_FOLD_13

阶段输出契约

REQ

  • 必须输出:active_phasesprimary_phaseprimary_scenesecondary_scenes
  • 必须输出:device_constraintscapability_boundaryacceptance_focus
  • 额外要求:明确当前设备形态、当前 fold 状态、方向策略和上下分屏职责

DEV

  • 必须输出:code_touchpointsreuse_resourcesimplementation_notesintegration_risks
  • 额外要求:明确状态监听入口、折痕计算入口、分屏组件落点和生命周期回收点

FIX

  • 必须输出:problem_profileroot_cause_hypothesisfix_planregression_watchlist
  • 额外要求:明确问题是状态监听缺失、方向锁定错误、折痕映射错误还是旧状态机被破坏

VAL

  • 必须输出:verification_matrixevidence_requirementspass_criteriaresidual_risks
  • 额外要求:至少包含 foldStatus 结果、方向信息、窗口几何或截图证据,并验证原有显示逻辑未被破坏

Signals

GitHub stars
34
Forks
7
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
hmos-multidevice-fold-state
Source
github.com/openharmonyinsight/openharmony-skills