HarmonyOS鸿蒙Next中如何获取窗口尺寸

HarmonyOS鸿蒙Next中如何获取窗口尺寸 @ohos.window (窗口) 里面,有size方法,这个怎么调用到。

现在Js回调回来的时候,需要返回设备的尺寸和安全区域。怎么获取当前页面的size和安全区域,怎么获取到当前的window

2 回复
获取设备尺寸: 

```javascript
import display from '[@ohos](/user/ohos).display'; 
[@State](/user/State) screenWidth: number = display.getDefaultDisplaySync().width 
[@State](/user/State) screenHeight: number = display.getDefaultDisplaySync().height

获取屏幕尺寸:

let mainWindow: window.Window = windowStage.getMainWindowSync();
//获取屏幕尺寸的方法
let size =  mainWindow.getWindowProperties().windowRect

获取当前window请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#windowgetlastwindow9

安全区域请参考:

文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-expand-safe-area-V5

1、当前window提供API获取系统区域包括导航栏和状态栏,您可自行查阅文档。 API:getWindowAvoidArea 参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#getwindowavoidarea9

2、有些页面需要全屏,有些不需要全屏的情况,可全局设置setWindowLayoutFullScreen(true),然后不需要全屏的界面的自己添加margin,手动添加对头部和导航条的距离。 具体请参考链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-V5

更多关于HarmonyOS鸿蒙Next中如何获取窗口尺寸的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,获取窗口尺寸可以通过Window类的getWindowSize方法实现。首先,通过WindowManager获取当前窗口实例,然后调用getWindowSize方法获取窗口的宽度和高度。具体代码如下:

import window from '@ohos.window';

let windowClass = window.getLastWindow(this.context);
windowClass.getWindowSize().then((size) => {
    let width = size.width;
    let height = size.height;
    console.log(`Window Width: ${width}, Window Height: ${height}`);
});

getWindowSize方法返回一个Promise对象,解析后包含窗口的宽度和高度。

回到顶部