当前位置:   article > 正文

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

鸿蒙开发 获取状态栏高度

场景1.在EntryAbility.ts中设置

  1. onWindowStageCreate(windowStage: window.WindowStage) {
  2. let windowClass: window.Window = null;
  3. windowStage.getMainWindow((err, data) => {
  4. // 1.获取应用主窗口
  5. windowClass = data;
  6. // 2.设置导航栏、状态栏不显示。
  7. windowClass.setWindowSystemBarEnable([], (err) => {
  8. });
  9. // 3.设置全屏
  10. windowClass.setWindowLayoutFullScreen(true).then(() => {
  11. })
  12. // 4.获取底部导航栏高度,此时的高度单位是px
  13. let navigationHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).bottomRect.height
  14. PersistentStorage.PersistProps([{
  15. key: "navigationHeight", defaultValue: navigationHeight
  16. }])
  17. windowStage.loadContent('pages/Index', (err, data) => {
  18. });
  19. })
  20. }

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

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

第一步:先获取context属性

导入依赖

  1. import common from '@ohos.app.ability.common'
  2. import window from '@ohos.window'

声明context属性

private context = getContext(this) as common.UIAbilityContext
aboutToAppear()方法中
  1. aboutToAppear() {
  2. window.getLastWindow(this.context).then((windowClass) => {
  3. windowClass.setWindowSystemBarEnable(["status", "navigation"]).then(() => {
  4. })
  5. })
  6. }

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

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

px2vp(this.navigationHeight)

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

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

闽ICP备14008679号