HarmonyOS 如何隐藏底部虚拟建,或者计算出高度的方法

尝试方法获取的高度为0:

let height = avoidArea.bottomRect.height

完整代码:

onWindowStageCreate(windowStage: window.WindowStage): void {
  // Main window is created, set main page for this ability
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

  let windowClass: window.Window | undefined = undefined;
  windowStage.getMainWindow((err: BusinessError, data) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to obtain the main window. Cause code: ${err.code}, message: ${err.message}`);
    return;
  }
  windowClass = data;
  let type = window.AvoidAreaType.TYPE_SYSTEM;
  try {
  let avoidArea = windowClass.getWindowAvoidArea(type);
  //底部虚拟键盘高度
  let height = avoidArea.bottomRect.height
  AppStorage.setOrCreate<number>('avoidHeight',height);
  console.error(`height: ${height}`);
  } catch (exception) {
    console.error(`Failed to obtain the area. Cause code: ${exception.code}, message: ${exception.message}`);
    AppStorage.setOrCreate<number>('avoidHeight',0);
    }
  });

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.');
});
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

window.AvoidAreaType.TYPE_SYSTEM代表的是标题栏,bottomRect.height为0。

window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR代表的是底部导航栏,这个的bottomRect.height才不为0。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#avoidareatype7

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 如何动态计算Text高度
15浏览 • 1回复 待解决
HarmonyOS 计算文字高度
33浏览 • 1回复 待解决
HarmonyOS Text计算高度
77浏览 • 1回复 待解决
HarmonyOS 文本高度计算问题
51浏览 • 1回复 待解决
HarmonyOS 无法隐藏底部导航条
21浏览 • 1回复 待解决
HarmonyOS 如何获取底部导航栏高度
53浏览 • 1回复 待解决
HarmonyOS 手机底部AI导航能否隐藏
18浏览 • 1回复 待解决
HarmonyOS 怎么隐藏底部导航条
36浏览 • 1回复 待解决
HarmonyOS 获取手机底部导航栏高度
27浏览 • 1回复 待解决