HarmonyOS 鸿蒙Next导航栏高度获取问题

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next导航栏高度获取问题
<markdown _ngcontent-iph-c237="" class="markdownPreContainer">

  let windowClass: window.Window = windowStage.getMainWindowSync(); // 获取应用主窗口
// 1. 设置窗口全屏
let isLayoutFullScreen = true;
windowClass.setWindowLayoutFullScreen(isLayoutFullScreen);
let avoidArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR);
let avoidArea2 = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM);

  <span class="hljs-reserved"><span class="hljs-reserved">let</span></span> bottomRectHeight = avoidArea.bottomRect.height;
  <span class="hljs-reserved"><span class="hljs-reserved">let</span></span> topRectHeight = avoidArea2.topRect.height;

  <span class="hljs-built_in"><span class="hljs-built_in">console</span></span>.log(<span class="hljs-string"><span class="hljs-string">'rect'</span></span>,bottomRectHeight,topRectHeight)

<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

这样获取得高度不对

</markdown>

关于HarmonyOS 鸿蒙Next导航栏高度获取问题的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
7 回复

状态栏获取的高度是px的

import { window } from '@kit.ArkUI';
import { UIAbility } from '@kit.AbilityKit';

export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage): void { let windowClass = windowStage.getMainWindowSync() let statusBarHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).topRect.height let navigationIndicatorHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect.height AppStorage.setOrCreate(‘statusBarHeight’, statusBarHeight) //保存状态栏高度,单位px AppStorage.setOrCreate(‘navigationIndicatorHeight’, navigationIndicatorHeight) //保存底部导航条的高度,单位px windowClass.setWindowSystemBarEnable([]); //‘status’ | ‘navigation’ windowStage.loadContent(‘pages/Page40’); } }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

所以你使用的时候需要

 Text().width(‘100%’).height(${AppStorage.get(<span class="hljs-string"><span class="hljs-string">'statusBarHeight'</span></span>)}px) //顶部状态栏高度<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

正确!感谢!

请问,这样获取的是状态栏的高度,也就是显示信号,时间的那一栏的高度。那么状态栏下面的标题栏的高度怎么获取去呢?还是说有固定的值呢

您好,请问您是如何修改状态栏字体颜色呢
我发现这个 TYPE_NAVIGATION_INDICATOR  属性在API9中没有,那API9中是使用
let bottomBarH = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).bottomRect.height;来获取底部操作栏的高度吗

ability

let windowClass: window.Window = windowStage.getMainWindowSync(); // 获取应用主窗口
      let isLayoutFullScreen = true;
      windowClass.setWindowLayoutFullScreen(isLayoutFullScreen)
  <span class="hljs-keyword"><span class="hljs-keyword">let</span></span> topRectHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).topRect.height;
  AppStorage.setOrCreate(<span class="hljs-string"><span class="hljs-string">'topRectHeight'</span></span>, topRectHeight + <span class="hljs-string"><span class="hljs-string">'px'</span></span>);

  <span class="hljs-keyword"><span class="hljs-keyword">let</span></span> bottomRectHeight =
    windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect.height
  AppStorage.setOrCreate(<span class="hljs-string"><span class="hljs-string">'bottomRectHeight'</span></span>, bottomRectHeight + <span class="hljs-string"><span class="hljs-string">'px'</span></span>);</code><button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button></pre></div></div>

感谢感谢,原因确实是因为px和vp单位之间的问题

回到顶部