HarmonyOS 鸿蒙Next 获取底部安全高度,bottomRect.height为0

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 获取底部安全高度,bottomRect.height为0

onWindowStageCreate(windowStage: window.WindowStage): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
let windowClass: window.Window = windowStage.getMainWindowSync();
let area = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM)
let statusBarHeight = area.topRect.height
let bottomMargin = area.bottomRect.height;
AppStorage.setOrCreate('statusBarHeight', statusBarHeight)
AppStorage.setOrCreate('safeBottom', bottomMargin)
console.log('area11',JSON.stringify(area))
console.log('statusBarHeight',statusBarHeight)
console.log('bottomMargin',bottomMargin)

windowStage.loadContent('pages/Index', (err) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');

// 设置全屏
windowClass.setWindowLayoutFullScreen(true);


});
}

更多关于HarmonyOS 鸿蒙Next 获取底部安全高度,bottomRect.height为0的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
使用下面的类型。

windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR)

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#ZH-CN_TOPIC_0000001884757714__avoidareatype7

TYPE_NAVIGATION_INDICATOR为底部导航条,TYPE_SYSTEM为系统状态栏

更多关于HarmonyOS 鸿蒙Next 获取底部安全高度,bottomRect.height为0的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,获取底部安全高度(如导航栏高度)时,如果bottomRect.height为0,通常意味着系统没有检测到底部安全区域。这种情况可能由多种原因引起,包括但不限于:

  1. 窗口布局设置:确保你的应用窗口布局配置正确,且已启用了对安全区域的适配。

  2. 系统权限:检查应用是否拥有必要的权限来访问系统UI信息。

  3. 系统版本与API:确认你的鸿蒙系统版本是否支持获取底部安全高度的API,以及你使用的API是否正确。

  4. 设备兼容性:不同设备对安全区域的实现可能有差异,确保在目标设备上测试。

在代码中,你可以通过以下方式尝试获取底部安全高度(示例代码简化,具体实现需根据鸿蒙API调整):

// 假设你有一个能力来获取安全区域信息
let safeAreaInsets = getWindowInsets();
let bottomHeight = safeAreaInsets.bottom;

if (bottomHeight === 0) {
    // 尝试重新触发窗口布局更新或检查其他可能的原因
    // 这里直接输出提示,因为要求不给出建议
    console.log("底部安全高度为0,请检查原因");
}

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

回到顶部