智能客服
你问我答,随时在线为你解决问题
获取系统状态栏和导航栏等规避区域。使用系统提供的 getWindowAvoidArea 获取系统规避区域。返回值中的 topRect.height 即为系统状态栏的高度,单位为 px。参考代码如下:
// MainAbility.ets
import { common, UIAbility } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
/**
* Get the height of the system status bar and navigation bar
* @param context
* @returns
*/
async function getWindowAvoidArea(context: common.UIAbilityContext): Promise<window.AvoidArea | null> {
try {
// The default area of the system includes the status bar and navigation bar
const mainWindow = await window.getLastWindow(context);
const avoidAreaType = window.AvoidAreaType.TYPE_SYSTEM;
const avoidArea = mainWindow.getWindowAvoidArea(avoidAreaType);
const avoidAreaTypeNavigationBar = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR;
const avoidAreaNavigationBar = mainWindow.getWindowAvoidArea(avoidAreaTypeNavigationBar);
const height = avoidArea.topRect.height;
const heightNavigationBar = avoidAreaNavigationBar.bottomRect.height;
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
} 参考链接