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

场景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中我没有获取到。如果有更好的方法麻烦告诉我一下

相关推荐
HwJack202 小时前
HarmonyOS APP开发之解密 ArkTS 状态管理:@State, @Observed, @ObjectLink 三角阵
华为·harmonyos
●VON7 小时前
纯ArkUI实现7层拟物3D环形进度图:零依赖的视觉革命
服务器·3d·app·鸿蒙·von
若兰幽竹10 小时前
【HarmonyOS 6.1 全场景实战】《灵犀厨房》实战(三):ArkTS 高效开发:TypeScript 核心与 API 23 新规
harmonyos·鸿蒙系统·harmonyos6.1.0
Swift社区10 小时前
鸿蒙 PC 为什么更像“系统”,而不是“应用平台”?
华为·harmonyos
aqi0012 小时前
一文速览 HarmonyOS 6.0.1 引入的十个新特性
android·华为·harmonyos·鸿蒙·harmony
麟听科技12 小时前
HarmonyOS 6.0+ 跨端智能写作助手开发实战:多设备接续编辑与AI辅助创作落地
人工智能·分布式·华为·harmonyos·ai写作
求学中--12 小时前
ArkUI电商首页完整实战
华为·typescript·harmonyos
xmdy586613 小时前
Flutter+开源鸿蒙实战|城市共享驿站智能存取系统 Day1 项目初始化+架构分层+多端适配+全局状态基座
flutter·开源·harmonyos
前端不太难13 小时前
AI 能力如何变成鸿蒙 App 的基础设施
人工智能·状态模式·harmonyos
空中海13 小时前
01 鸿蒙知识体系图与环境基础
华为·harmonyos