OpenHarmony SystemUI开发——实现全局导航栏和状态栏关闭

在实际生产中,进场遇到需要关闭导航栏和状态栏的需求,现分享解决办法:

开发环境

OpenHarmony 5.0.0r

代码分析

思路: launcher本身可以关闭 导航栏(实际是 公共事件,发送消息给systemUI来实控制)

systemUI中product\default\navigationBar\src\main\ets\viewmodel\NavigationBarViewModel.ts 中

  private windowSwitches(navigationBarStatusValue: string): void {
    this.isDisplay = navigationBarStatusValue == '1' ? true : false;
    if (!this.isDisplay || !this.mNavigationBarComponentData.isEnable) {
      //For gesture navigation scenarios
      //Systemui hides the navigation bar,and then notifies the launcher that it can start moving down the dock bar.
      WindowManager.hideWindow(WindowType.STATUS_BAR).then(() => {//关状态栏
      }).catch((err) => {
        Log.showError(TAG, `${NAVIGATIONBAR_HIDE_EVENT} Publish catch err: ${JSON.stringify(err)}`);
      });

      WindowManager.hideWindow(WindowType.NAVIGATION_BAR).then(() => {//关导航栏
      }).catch((err) => {
        Log.showError(TAG, `${NAVIGATIONBAR_HIDE_EVENT} Publish catch err: ${JSON.stringify(err)}`);
      });
    } else {
      WindowManager.showWindow(WindowType.STATUS_BAR).then(() => {//开状态栏
      }).catch((err) => {
      });
      WindowManager.showWindow(WindowType.NAVIGATION_BAR).then(() => {//开导航栏
      }).catch((err) => {
      });
    }
  }

代码修改

image.png

image.png

image.png

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

离北况归

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值