沉侵式状态栏获取状态栏高度为0

设置沉侵式状态栏时(setSpecificSystemBarEnabled),获取的状态栏高度是0,要怎么写才能正确获取状态栏高度。

HarmonyOS
2024-09-23 12:59:11
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

参考demo:

async onWindowStageCreate(windowStage: window.WindowStage) {  
  // 缓存当前窗口管理器  
  AppStorage.setOrCreate<window.WindowStage>('windowStage', windowStage)  
  
  // 设置 传感器自动旋转模式 和 全屏  
  await windowStage.getMainWindowSync().setPreferredOrientation(window.Orientation.AUTO_ROTATION)  
  await windowStage.getMainWindowSync().setWindowLayoutFullScreen(true)  
  
  // 获取应用主窗口  
  let windowClass = windowStage.getMainWindowSync()  
  
  windowClass.on('avoidAreaChange', (data) => {  
    if (data.type == window.AvoidAreaType.TYPE_SYSTEM) {  
      AppStorage.setOrCreate<number>('top_bar_height', data.area.topRect.height);  
      AppStorage.setOrCreate<number>('bottom_bar_height', data.area.bottomRect.height);  
      console.log('22222222222 = systemAvoidArea', JSON.stringify(data.area))  
    }  
  })  
  
  windowStage.loadContent('pages/StartPage', (err, data) => {  
    if (err.code) {  
      console.log('1111 = JSON.stringify(data) === ', JSON.stringify(err) ?? '')  
      return;  
    }  
    console.log('1111 = JSON.stringify(data) === ', JSON.stringify(data) ?? '')  
  });  
}

页面中获取对应的值:

@Entry  
@Component  
struct DemoPage {  
  @State message: string = 'Hello World';  
  
  aboutToAppear(): void {  
    let topHeight = AppStorage.get<number>('top_bar_height')  
    console.log('topHeight =========> ', topHeight)  
  
    let windowStage:window.WindowStage = AppStorage.get<window.WindowStage>('windowStage') as window.WindowStage  
    let windowClass = windowStage.getMainWindowSync()  
  
    let systemAvoidArea: window.AvoidArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM)  
    console.log('systemAvoidArea =========> ', JSON.stringify(systemAvoidArea))  
  }  
  
  build() {  
    Column() {  
      Text(this.message)  
    }  
    .width('100%')  
    .height('100%')  
  }  
}
分享
微博
QQ
微信
回复
2024-09-23 17:18:10
相关问题
获取状态栏与导航高度
501浏览 • 1回复 待解决
如何获取状态栏和导航高度
2815浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
437浏览 • 1回复 待解决
HarmonyOS API获取状态栏高度
208浏览 • 1回复 待解决
获取状态栏高度的方法
1866浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
11244浏览 • 1回复 待解决
状态栏高度怎么获取
9562浏览 • 3回复 待解决
HarmonyOS 如何获取系统状态栏高度
655浏览 • 1回复 待解决
获取状态栏高度等方法
7960浏览 • 1回复 待解决
如何获取系统导航状态栏高度
686浏览 • 1回复 待解决
状态栏和底部触控高度获取
612浏览 • 2回复 待解决
求大佬告知如何获取状态栏高度
2178浏览 • 1回复 待解决
如何设置沉浸状态栏
2436浏览 • 1回复 待解决
如何实现沉浸状态栏
433浏览 • 1回复 待解决
HarmonyOS 沉浸状态栏最佳实践
208浏览 • 1回复 待解决
有谁知道如何获取状态栏高度
2149浏览 • 1回复 待解决