HarmonyOS 鸿蒙Next折叠屏下window和display相关监听api咨询
HarmonyOS 鸿蒙Next折叠屏下window和display相关监听api咨询
【设备信息】 Mate60
【API版本】 Api12
【DevEco Studio版本】 5.0.5.300
【问题描述】
请问display.on('foldDisplayModeChange')
和window.on('windowStatusChange')
有什么区别?目前使用上看,App全屏切换至分屏,display.on
不会回调,但是window.on
会回调
另外关于window.on('windowSizeChange')
也有几个问题
-
如果是监听窗口的大小变化,是否使用
window.on('windowSizeChange')
即可,若window.on('windowStatusChange')
引发的窗口大小变化,都会回调window.on('windowSizeChange')
? -
window.on('windowSizeChange')
监听窗口大小变化,但是从全屏至折叠状态,并不会回调此方法,难道全屏至折叠状态的变化不算窗口大小变化? -
屏幕显示模式变化、窗口模式/大小变化的页面布局适配有最佳实践吗?
更多关于HarmonyOS 鸿蒙Next折叠屏下window和display相关监听api咨询的实战教程也可以访问 https://www.itying.com/category-93-b0.html
-
若要监听窗口的大小变化使用
window.on('windowSizeChange')
即可,当前窗口大小变化都会回调该方法,比如执行切换分屏或悬浮窗等操作。 -
从全屏至折叠状态,是有一个物理折叠状态变化,会使主子屏幕显示模式发生变化,并不是当前窗口大小的变化,所以不会回调
windowSizeChange
,可使用display.on('foldStatusChange')
监听折叠变化,使用display.on('foldDisplayModeChange')
获取折叠屏的状态变化后屏幕的宽高等信息。 -
以下布局适配相关文档:
-
智慧多窗开发实践: https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-multi-window-practice-V5
-
另外HarmonyOS-Cases/Cases提供一些示例: https://gitee.com/harmonyos-cases/cases/tree/master
-
更多关于HarmonyOS 鸿蒙Next折叠屏下window和display相关监听api咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)Next中,针对折叠屏设备的窗口和显示相关的监听API,主要涉及以下几个方面:
-
Window监听:通过
Window
类可以获取当前窗口的状态信息,如窗口大小、位置等。可以使用Window.on('windowSizeChange')
来监听窗口大小的变化。当折叠屏设备展开或折叠时,窗口大小会发生变化,此事件会被触发。 -
Display监听:
Display
类提供了与显示相关的信息,如屏幕分辨率、方向等。可以通过Display.on('displayChange')
来监听显示状态的变化。例如,当设备从竖屏切换到横屏时,此事件会被触发。 -
屏幕折叠状态监听:鸿蒙提供了
ScreenFoldController
类,用于监听屏幕的折叠状态。可以通过ScreenFoldController.on('foldStateChange')
来监听屏幕折叠状态的变化,如从展开状态变为折叠状态。 -
窗口模式监听:通过
WindowModeController
可以监听窗口模式的变化,如从全屏模式切换到多窗口模式。可以使用WindowModeController.on('windowModeChange')
来监听这些变化。
这些API可以帮助开发者在折叠屏设备上更好地管理窗口和显示状态,确保应用在不同状态下能够正确响应和适配。