鸿蒙设置沉浸式状态栏、全屏、获取导航栏高度

场景1.在EntryAbility.ts中设置

TypeScript 复制代码
  onWindowStageCreate(windowStage: window.WindowStage) {


    let windowClass: window.Window = null;
    windowStage.getMainWindow((err, data) => {
      // 1.获取应用主窗口
      windowClass = data;
      // 2.设置导航栏、状态栏不显示。
      windowClass.setWindowSystemBarEnable([], (err) => {

      });
      // 3.设置全屏
      windowClass.setWindowLayoutFullScreen(true).then(() => {

      })
      // 4.获取底部导航栏高度,此时的高度单位是px
      let navigationHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).bottomRect.height
      PersistentStorage.PersistProps([{
        key: "navigationHeight", defaultValue: navigationHeight
      }])
      windowStage.loadContent('pages/Index', (err, data) => {

      });
    })

  }

此时APP顶部状态栏和底部导航栏都将被隐藏,并且页面全面屏显示

场景2. 如果想要在其他页面继续显示状态栏和底部导航栏又该怎么做呢?

第一步:先获取context属性

导入依赖

TypeScript 复制代码
import common from '@ohos.app.ability.common'
import window from '@ohos.window'

声明context属性

TypeScript 复制代码
private context = getContext(this) as common.UIAbilityContext
复制代码
aboutToAppear()方法中
TypeScript 复制代码
aboutToAppear() {
  window.getLastWindow(this.context).then((windowClass) => {
    windowClass.setWindowSystemBarEnable(["status", "navigation"]).then(() => {
    })
  })
}

"status"和"navigation"就对象状态栏和导航栏。想显示哪个就写哪个

如果想获取导航栏的高度为vp,那么通过下面方法获取

TypeScript 复制代码
px2vp(this.navigationHeight)

注意:目前我只在页面中能获取到px2vp这个方法,在ability中我没有获取到。如果有更好的方法麻烦告诉我一下

相关推荐
贾伟康36 分钟前
【HarmonyOS 7新能力|028】Core Vision Kit工程封装:把接入逻辑放进可维护的分层结构
计算机视觉·harmonyos·arkts·端侧ai·harmonyos 7
马剑威(威哥爱编程)2 小时前
【共创稿事节】HarmonyOS 7 互动卡片实战:摇一摇触发静态转动态,前景元素出框
华为·harmonyos
贾伟康2 小时前
【HarmonyOS 7新能力|029】3DGS工程封装:把接入逻辑放进可维护的分层结构
harmonyos·arkts·三维重建·3dgs·harmonyos 7
马剑威(威哥爱编程)3 小时前
【共创稿事节】HarmonyOS 7 闪控窗实战:标准悬浮窗、侧边栏暂存与闪控球一键切换
华为·harmonyos
贾伟康4 小时前
【HarmonyOS 7新能力|019】平行视界入门实战:从能力边界到最小可运行链路
harmonyos·arkts·arkui·harmonyos 7·平行视界
技术任我行XTing4 小时前
【DFX系列】Flutter 鸿蒙应用外接纹理介绍及问题定位
flutter·harmonyos
三翼鸟数字化技术团队4 小时前
WiFi-DensePose × OpenHarmony 智慧家居融合
harmonyos
HarmonyOS_SDK5 小时前
AI 赋能 Push Kit 场景化消息开发,高效完成鸿蒙应用推送能力接入
harmonyos
大雷神6 小时前
【共创稿事节】HarmonyOS ArkGraphics 3D实操——做一个可暂停、可拖动的音箱场景动画
harmonyos
anthonyzhu6 小时前
MacOS27 x86限制引发的pod的问题处理
华为·harmonyos