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')也有几个问题

  1. 如果是监听窗口的大小变化,是否使用window.on('windowSizeChange')即可,若window.on('windowStatusChange')引发的窗口大小变化,都会回调window.on('windowSizeChange')

  2. window.on('windowSizeChange')监听窗口大小变化,但是从全屏至折叠状态,并不会回调此方法,难道全屏至折叠状态的变化不算窗口大小变化?

  3. 屏幕显示模式变化、窗口模式/大小变化的页面布局适配有最佳实践吗?


更多关于HarmonyOS 鸿蒙Next折叠屏下window和display相关监听api咨询的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
  1. 若要监听窗口的大小变化使用 window.on('windowSizeChange') 即可,当前窗口大小变化都会回调该方法,比如执行切换分屏或悬浮窗等操作。

  2. 从全屏至折叠状态,是有一个物理折叠状态变化,会使主子屏幕显示模式发生变化,并不是当前窗口大小的变化,所以不会回调 windowSizeChange,可使用 display.on('foldStatusChange') 监听折叠变化,使用 display.on('foldDisplayModeChange') 获取折叠屏的状态变化后屏幕的宽高等信息。

  3. 以下布局适配相关文档:

更多关于HarmonyOS 鸿蒙Next折叠屏下window和display相关监听api咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next中,针对折叠屏设备的窗口和显示相关的监听API,主要涉及以下几个方面:

  1. Window监听:通过Window类可以获取当前窗口的状态信息,如窗口大小、位置等。可以使用Window.on('windowSizeChange')来监听窗口大小的变化。当折叠屏设备展开或折叠时,窗口大小会发生变化,此事件会被触发。

  2. Display监听Display类提供了与显示相关的信息,如屏幕分辨率、方向等。可以通过Display.on('displayChange')来监听显示状态的变化。例如,当设备从竖屏切换到横屏时,此事件会被触发。

  3. 屏幕折叠状态监听:鸿蒙提供了ScreenFoldController类,用于监听屏幕的折叠状态。可以通过ScreenFoldController.on('foldStateChange')来监听屏幕折叠状态的变化,如从展开状态变为折叠状态。

  4. 窗口模式监听:通过WindowModeController可以监听窗口模式的变化,如从全屏模式切换到多窗口模式。可以使用WindowModeController.on('windowModeChange')来监听这些变化。

这些API可以帮助开发者在折叠屏设备上更好地管理窗口和显示状态,确保应用在不同状态下能够正确响应和适配。

回到顶部