当前位置: 首页 > news >正文

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

相关文章:

  • powershell_bypass.cna 插件(适配 Cobalt Strike 4.0 的免费版本下载地址)
  • selenium替代----playwright
  • 分析NVIDIA的股价和业绩暴涨的原因
  • 计算机二级WPS Office第三套电子表格
  • 苍穹外卖--公共字段自动填充
  • Windows 忘记密码怎么办?
  • 深度解析动态IP业务核心场景:从技术演进到行业实践
  • 使用Python删除PDF中多余或空白的页面
  • 升级element-ui步骤
  • nacos-server-2.2.2.tar及使用方式
  • 【UEFN】用于可靠多模态情感分析的高效不确定性估计融合网络
  • 【Java基础】——集合篇
  • 4-37:某单位分配到一个地址块 136.23.12.64/26。现在需要进一步划分为4个一样大的子网。试问:....
  • 【技术突破】CAN转Profinet:破解堆垛起重机智能互联的“密钥”
  • 图像画质算法记录(前言)
  • 探索表访问方法功能:顺序扫描分析
  • OpenManus中使用命令行运行py脚本报错
  • 【MyBatis-6】MyBatis动态SQL:灵活构建高效数据库查询的艺术
  • 辛格迪客户案例 | 天台山制药仓储管理系统(WMS)项目
  • 前端取经路——性能优化:唐僧的九道心经
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • 经济日报刊文:品牌经营不能让情怀唱“独角戏”
  • 春秋航空:如果供应链持续改善、油价回落到合理水平,公司补充运力的需求将会增长
  • 洲际酒店:今年第一季度全球酒店平均客房收入同比增长3.3%
  • 人民日报整版调查:中小学春秋假,如何放得好推得开?
  • 融创中国:今年前4个月销售额约112亿元