HarmonyOS 鸿蒙Next 状态栏和底部触控栏的高度获取

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 状态栏和底部触控栏的高度获取

在应用设置沉浸式的时候,能否设置顶部沉浸式,底部在安全区域内布局。如果自己设置底部margin,底部高度如何获取

2 回复

该问题可以参考开发指南(代码)实现。

开发指南链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-window#getwindowavoidarea9

参考代码:目前通过getWindowAvoidArea无法拿到bottom的高度;

底部菜单栏高度

onPageShow() {
  AppStorage.setOrCreate("nav", this.pathInfos);
  let windowStage = AppStorage.get("windowStage") as window.WindowStage;
  console.info("zzzzz "+JSON.stringify(windowStage.getMainWindowSync().getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR)));
}

更多关于HarmonyOS 鸿蒙Next 状态栏和底部触控栏的高度获取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,获取状态栏和底部触控栏的高度可以通过系统提供的API来实现。以下是直接获取这两个高度的方法:

  1. 获取状态栏高度: 使用SystemUiController类中的相关方法,可以通过调用getWindow().getDecorView().getWindowInsets().getDisplayCutout().getSafeInsetTop()来获取状态栏的高度(注意,这返回的是顶部安全区域的高度,通常等同于状态栏高度)。

    int statusBarHeight = getWindow().getDecorView().getWindowInsets().getDisplayCutout().getSafeInsetTop();
    

    注意:由于鸿蒙API与Android有所差异,上述代码需根据鸿蒙实际API调整。鸿蒙系统中可能需要使用WindowInsets或类似类的其他方法。

  2. 获取底部触控栏高度: 底部触控栏(如虚拟导航栏)的高度同样可以通过WindowInsets获取。在鸿蒙系统中,可能使用的方法类似于Android中的getWindowInsets().getVisibleInsets().bottom,但具体实现需参考鸿蒙API文档。

    int navigationBarHeight = getWindow().getDecorView().getWindowInsets().getVisibleInsets().bottom;
    

    注意:鸿蒙系统中获取底部触控栏高度的具体方法可能不同,需查阅鸿蒙开发文档。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部