HarmonyOS x5折叠屏在切换折叠状态时,foldStatusChange回调中通过display.getDefaultDisplaySync()获取到的屏幕宽度不正确

从展开状态折叠起来时,display.getDefaultDisplaySync()获取到的display对象上的屏幕宽度值不正确,有时偶尔会返回正确的值,但大部分情况返回的还是展开时的屏幕宽度。

08-01 11:11:37.705   2186-2186    A00000/MIST-SDK                xxx         D     dispatchFoldChanged status=1 width=711.68}
08-01 11:11:40.889   2186-2186    A00000/MIST-SDK                xxx         D     dispatchFoldChanged status=2 width=711.68}
08-01 11:11:43.796   2186-2186    A00000/MIST-SDK                xxx         D     dispatchFoldChanged status=1 width=711.68}
08-01 11:11:46.890   2186-2186    A00000/MIST-SDK                xxx         D     dispatchFoldChanged status=2 width=345.6}
08-01 11:11:50.672   2186-2186    A00000/MIST-SDK                xxx         D     dispatchFoldChanged status=1 width=711.68}
08-01 11:11:55.310   2186-2186    A00000/MIST-SDK                xxx         D     dispatchFoldChanged status=2 width=711.68}

只有一次在折起状态获取到了正确的宽度345.6,这会导致应用无法按照实际屏幕尺寸进行元素布局。

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

1、这个目前display.on('foldStatusChange')和display.on('foldDisplayModeChange')有区别,foldstatus即折叠态是hall器件和posture器件上报后得到对应折叠状态就通知监听变化。folddisplaymode是折叠屏显示模式,这个foldstatus上报后还有要完成对应的切屏操作,更新屏幕属性后才会通知监听olddisplaymode变化,因此,建议使用displaymode,不要用foldstatus。

2、foldStatusChange需要给做开合动效的场景,它需要早一些收到折叠状态回调。

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 折叠状态获取
266浏览 • 1回复 待解决
HarmonyOS 折叠获取屏幕尺寸问题
135浏览 • 1回复 待解决
HarmonyOS 折叠webview宽度问题
573浏览 • 1回复 待解决