鸿蒙Next ArkTS中如何获取工具栏高度

在鸿蒙Next中使用ArkTS开发时,如何获取工具栏(Toolbar)的实际高度?尝试通过getHeight()方法获取返回值为0,是否有其他准确的API或计算方式能够动态获取当前工具栏的像素高度?需要适配不同设备分辨率的情况。

2 回复

在鸿蒙Next的ArkTS中,可以通过getSystemBarHeight方法获取工具栏(状态栏)高度:

import window from '@ohos.window';

// 获取窗口对象
let windowClass = await window.getLastWindow(this.context);
// 获取状态栏高度
let statusBarHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).topRect.height;

注意:

  1. 需要在aboutToAppear或按钮事件等异步场景中使用
  2. 返回的是像素值,需要根据屏幕密度进行适配
  3. 确保在UI线程调用,避免阻塞

这样就可以拿到准确的工具栏高度用于布局计算了。

更多关于鸿蒙Next ArkTS中如何获取工具栏高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next的ArkUI(ArkTS)中,可以通过getSystemBarHeight方法获取系统栏(包括状态栏和导航栏)的高度。要获取工具栏(通常指导航栏)的高度,可以按以下步骤操作:

  1. 导入模块

    import { systembar } from '[@kit](/user/kit).ArkWeb';
    
  2. 获取系统栏信息

    let systemBarHeight = systembar.getSystemBarHeight('navigation');
    

完整示例代码:

import { systembar } from '[@kit](/user/kit).ArkWeb';
import { BusinessError } from '[@kit](/user/kit).BasicServicesKit';

// 获取导航栏高度
try {
  let navHeight: number = systembar.getSystemBarHeight('navigation');
  console.log(`Navigation bar height: ${navHeight}px`);
} catch (error) {
  let err: BusinessError = error as BusinessError;
  console.error(`Failed to get navigation bar height. Code: ${err.code}, message: ${err.message}`);
}

说明

  • getSystemBarHeight 参数可选 'status'(状态栏)或 'navigation'(导航栏)。
  • 返回值为像素单位的数字。
  • 建议在页面初始化时调用,或结合窗口变化事件动态获取。

此方法适用于鸿蒙Next的API 10及以上版本。

回到顶部