HarmonyOS 鸿蒙Next导航栏高度获取问题
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 联系官网客服。
状态栏获取的高度是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>
正确!感谢!
请问,这样获取的是状态栏的高度,也就是显示信号,时间的那一栏的高度。那么状态栏下面的标题栏的高度怎么获取去呢?还是说有固定的值呢
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单位之间的问题