HarmonyOS 导航栏高度和状态栏高度貌似不对
获取布局避让遮挡的区域。
// 获取状态栏高度
let statusHeight= AppUtils.windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).topRect.height;
// 获取导航栏高度
let navHeight = AppUtils.windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect.height;
preferencesMgr.setNumber(PreferencesConstants.statusHeight, px2vp( statusHeight));
preferencesMgr.setNumber(PreferencesConstants.navHeight, px2vp( navHeight));
px2vp( statusHeight) 是38.76
px2vp( navHeight) 是28
是不是不对
导航栏应该是56吧
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何获取状态栏和导航栏高度
2542浏览 • 1回复 待解决
鸿蒙如何获取导航栏和状态栏高度
10972浏览 • 1回复 待解决
获取状态栏与导航栏高度
243浏览 • 1回复 待解决
如何获取系统导航栏和状态栏的高度
348浏览 • 1回复 待解决
HarmonyOS 如何获取navbar的高度和状态栏高度
111浏览 • 1回复 待解决
HarmonyOS 如何获取顶部状态栏高度以及底部导航区域高度
157浏览 • 1回复 待解决
HarmonyOS 如何获取系统状态栏高度?
204浏览 • 1回复 待解决
获取状态栏高度的方法
1633浏览 • 1回复 待解决
状态栏的高度怎么获取呢
9338浏览 • 3回复 待解决
求获取状态栏高度等方法
7774浏览 • 1回复 待解决
求大佬告知如何获取状态栏高度?
1899浏览 • 1回复 待解决
OpenHarmony在哪里修改状态栏和导航栏布局
3563浏览 • 1回复 待解决
如何设置状态栏和导航栏的颜色
2350浏览 • 1回复 待解决
调用setWindowLayoutFullScreen实现了沉浸式透明状态栏,但未自动撑起状态栏的高度
1756浏览 • 1回复 待解决
有谁知道如何获取状态栏高度
1922浏览 • 1回复 待解决
如何动态修改状态栏和状态栏字体颜色
1754浏览 • 1回复 待解决
调用setWindowSystemBarProperties接口设置窗口状态栏和导航栏的高亮属性时不生效
1903浏览 • 1回复 待解决
怎么调用系统接口实现一键隐藏状态栏和导航栏?
2674浏览 • 1回复 待解决
Ark UI api8状态栏高度问题有知道的吗?
2226浏览 • 1回复 待解决
HarmonyOS 元服务中加载MapKit,如何隐藏状态栏和导航栏实现全屏沉浸式展示地图效果
101浏览 • 1回复 待解决
如何解决首次打开APP偶现状态栏高度获取过高的问题
422浏览 • 1回复 待解决
调用window实例的setWindowSystemBarProperties接口设置窗口状态栏和导航栏的高亮属性时不生效
1812浏览 • 1回复 待解决
怎样获取底部菜单栏高度
1567浏览 • 1回复 待解决
如何实现沉浸式状态栏?
228浏览 • 1回复 待解决
如何设置沉浸式状态栏
2180浏览 • 1回复 待解决
px2vp( statusHeight) 是38.76
px2vp( navHeight) 是28
是正确的。
px2vp( navHeight) 28 对应的是屏幕底部有灰色横条的导航条高度,不是状态栏下面导航栏的高度。
您可以新建项目,
将EntryAbility的onWindowStageCreate替换为下面代码:
编译查看展示效果。
是获取导航条的高度。
导航条请参考下方链接中 图1 界面元素示意图
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-V5
HarmonyOS的导航栏略有不同,是使用Navigation组件,具体您可以查看下方链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-navigation-navigation-V5
其他平台的是UINavigationController,导航栏高度NavigationBar是44,跳转新界面pushViewController就可以。
UINavigationController是上面是NavigationBar,下面是viewController的view。
HarmonyOS 用的是Navigation, 使用NavPathStack配合navDestination属性进行页面路由。
最外面的用Navigation(){}包起来,后面push的页面用navDestination(){}包起来。
Navigation第一个界面是首页,样式和其他平台的不太一样,后面push的界面才有类似的NavigationBar,叫titleBar,如果无法满足您的需求的话,您可以设置NavDestination(){}.hideTitleBar,隐藏标题栏,自定义。
下面是navDestination属性相关链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navdestination-V5#属性
调试阶段查看组件尺寸,您可以打开模拟器,编译项目,编译完成后点击IDE下方ArkUI Inspector窗口,点击'please select a debuggable process',选择对应模拟器与包名,点击对应组件,即可在右侧看到对应组件数据,包括宽高。
查看下来,titleBar高度(包含状态栏)为308px(94.76vp)。