如何获取状态栏和导航栏高度?

如何获取状态栏和导航栏高度

阅读 800
1 个回答

获取系统状态栏,导航栏等避让区域,使用系统提供的 getWindowAvoidArea 方法可获取。

参考代码如下:

// MainAbility.ts 
import window from '@ohos.window'; 
import common from '@ohos.app.ability.common'; 
import UIAbility from '@ohos.app.ability.UIAbility'; 
/** 
 * 获取系统状态栏,导航栏高度 
 * @param context 
 * @returns  
 */ 
async function getWindowAvoidArea(context: common.UIAbilityContext): Promise<window.AvoidArea> { 
  try { 
    const mainWindow = await window.getLastWindow(context); 
    const avoidAreaType = window.AvoidAreaType.TYPE_SYSTEM; // 系统默认区域,包括状态栏,导航栏 
    const avoidArea = mainWindow.getWindowAvoidArea(avoidAreaType); 
    return avoidArea 
  } catch (e) { 
    console.log('getWindowAvoidArea fail'); 
    return null 
  } 
} 
 
export default class MainAbility extends UIAbility { 
  // do something 
  async onWindowStageCreate(windowStage: window.WindowStage) { 
    getWindowAvoidArea(this.context); 
    windowStage.loadContent('pages/index') 
  } 
  // do something 
}

参考链接

getWindowAvoidArea

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进