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

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

HarmonyOS
2024-09-23 12:59:11
760浏览
收藏 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) ?? '')  
  });  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

页面中获取对应的值:

@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%')  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
分享
微博
QQ
微信
回复
2024-09-23 17:18:10


相关问题
HarmonyOS 获取状态栏高度
723浏览 • 1回复 待解决
获取状态栏与导航高度
1543浏览 • 1回复 待解决
如何获取状态栏与导航高度
1217浏览 • 0回复 待解决
如何获取状态栏和导航高度
3896浏览 • 1回复 待解决
获取状态栏高度的方法
2623浏览 • 1回复 待解决
HarmonyOS API获取状态栏高度
728浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
1618浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
710浏览 • 1回复 待解决
获取状态栏高度等方法
8646浏览 • 1回复 待解决
HarmonyOS 沉浸状态栏
720浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
12271浏览 • 1回复 待解决
状态栏高度怎么获取
10167浏览 • 3回复 待解决
HarmonyOS 如何获取系统状态栏高度
1557浏览 • 1回复 待解决
HarmonyOS 如何获取手机状态栏高度
788浏览 • 1回复 待解决
如何获取系统导航状态栏高度
1933浏览 • 1回复 待解决
状态栏和底部触控高度获取
1779浏览 • 2回复 待解决
HarmonyOS 沉浸状态栏无效
563浏览 • 1回复 待解决
求大佬告知如何获取状态栏高度
3049浏览 • 1回复 待解决
HarmonyOS 沉浸状态栏实现
752浏览 • 1回复 待解决
如何实现沉浸状态栏
1433浏览 • 1回复 待解决
如何设置沉浸状态栏
3642浏览 • 1回复 待解决
有谁知道如何获取状态栏高度
2835浏览 • 1回复 待解决