跳到主要内容

屏幕开发常见问题

三折叠设备中,调用on('FoldDisplayModeChange')监听接口获取到的FoldDisplayMode值为5代表什么含义

问题现象

三折叠设备中,调用on('foldDisplayModeChange')接口监听显示模式变化获取到的值为5,而调用getFoldDisplayMode()接口时的返回值却不是5。

产生原因

  1. FoldDisplayMode=5的含义

    在三折叠设备中,当FoldDisplayMode的值为5时,表示设备当前处于全展开显示模式,即三块屏幕完全展开,设备以最大可用屏幕尺寸进行内容展示。

  2. on('foldDisplayModeChange')返回5的原因

    on('foldDisplayModeChange')接口用于实时监听设备显示状态的变化,因此会返回包括5在内的所有实际显示模式值。当监听到值为5时,可以判断设备已进入全展开状态。

  3. 调用getFoldDisplayMode()接口不返回5的原因

    为了降低多设备适配的开发成本,不与设备形态绑定,因此getFoldDisplayMode()接口不返回5,开发者需要通过统一的断点管理机制来适配不同显示状态,采用“一次开发,多端部署”方案进行开发,简化布局适配的开发流程。

开发建议

虽然通过监听事件可以获取到FoldDisplayMode为5并进行特定处理,但为了更好的开发效率和兼容性,建议使用“一次开发,多端部署”方案进行UI布局适配,其中三折叠应用开发可见三折叠应用开发。这样不仅能减少重复开发工作,还能确保应用在多种设备上的一致性和稳定性。

折叠PC中,如何获取悬停态时下半屏幕的Display对象

问题现象

折叠PC中,在悬停态(foldStatus = FOLD_STATUS_HALF_FOLDED)的下半屏幕调用getDefaultDisplaySync()接口获取的是上半屏幕即displayId=0的Display对象。

解决措施

建议使用getDisplayByIdSync()接口获取指定displayId的Display对象。

虚拟屏中,Display对象的orientation属性值为4表示什么含义

问题现象

获取虚拟屏的Display对象后,orientation属性值为4,未在Orientation枚举范围中。

产生原因

虚拟屏本身没有物理屏幕,因此无法感知屏幕方向。在未主动设置屏幕方向的情况下,不能返回Orientation枚举中的任一值,此时orientation属性值返回4用于表示屏幕方向未知。