更新时间:2022-02-19 15:17:39浏览次数:993+次
在HarmonyOS鸿蒙项目中如何获取到状态栏高度?其实,在开发中我们可以参考窗口的getAvoidArea和getTopWindow的api,分为“代码实现”、“运行效果”两个步骤进行实现。
一、代码实现
全部代码如下:
import window from '@ohos.window';
@Entry
@Component
struct Index {
@State statusBarHeight:number=-1
public click(){
window.getTopWindow((err, data) => {
var windowClass = data;
var type = window.AvoidAreaType.TYPE_SYSTEM;
windowClass.getAvoidArea(type, (err, data) => {
if (err) {
console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
return;
}
this. statusBarHeight = data.topRect.height;
console.log("statusBarHeight====>>>>"+this.statusBarHeight);
});
});
}
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('获取状态栏高度')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(this.click.bind(this))
Text('状态栏高度'+this.statusBarHeight)
.fontSize(50)
.margin(10)
.fontColor(Color.Red)
}
.width('100%')
.height('100%')
}
}
二、运行效果
以上代码所获得的效果,如下图所示:
相关资讯