当前位置:   article > 正文

鸿蒙应用开发学习:ArkTs将应用设置为全屏显示并隐藏状态栏_鸿蒙开发不设置全屏

鸿蒙开发不设置全屏

一、问题描述

近期我在学习鸿蒙应用开发,跟着B站UP主黑马程序员的视频教程做了一个小鱼动画应用。之前解决了应用默认是竖屏,而这个小鱼动画应用是横屏的问题(见我前一篇博文鸿蒙应用开发学习:让page页面强制横屏)。但在手机上测试发现,页面中的返回键与手机状态栏发生重叠了,导致返回按钮不能正常响应点击事件。我首先想到的解决办法就是让状态栏不显示即可。

问题解决前的页面状态如下:

主页是竖屏的,手机状态栏对应用没什么影响,不过状态栏黑色的背景不讨喜。

进入小鱼动画应用后,问题就出来了,页面中的返回按钮与状态栏重叠了,导致返回按钮无法正常响应点击事件。

二、解决办法

我在网上以“arkts 怎么隐藏状态栏”为关键字进行搜索,找到了一篇关于鸿蒙应用状态栏设置的文章(链接:鸿蒙状态栏设置),按照这篇文章的方法进行了设置,解决了我所遇到的问题。

解决问题的办法是在 EntryAbility.ts 文件里找到 onWindowStageCreate生命周期函数。在这个函数内通过 windowStage 获取主窗口并调用 setWindowLayoutFullScreen 修改全屏状态。 再通过调用 setWindowSystemBarEnable 隐藏状态栏。

我写的代码如下:

  1. onWindowStageCreate(windowStage: window.WindowStage) {
  2. // 略
  3. // 获取窗口实例并赋值给全局变量,如此所有页面都可以通过全局变量去修改窗口信息,不需要重新获取
  4. windowStage.getMainWindow((err, data) => {
  5. if (err.code) {
  6. console.error('获取失败' + JSON.stringify(err));
  7. return;
  8. }
  9. console.info('获取主窗口的实例:' + JSON.stringify(data));
  10. globalThis.windowClass = data // 赋值给全局变量windowClass
  11. // 设置全屏显示
  12. globalThis.windowClass.setWindowLayoutFullScreen(true)
  13. // 隐藏状态栏显示
  14. globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
  15. });
  16. //略
  17. }

添加位置如下图:

添加完代码后,重新进行测试,这下应用变成全屏模式了,状态栏也隐藏了,小鱼动画页面中的返回键可以正常返回了。问题解决。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/327924
推荐阅读
相关标签
  

闽ICP备14008679号